Как получить доступ к члену stdClass в PHP, который начинается с @
У меня есть некоторый объект json, который я декодировал, и один из атрибутов начинается с "@", и я не могу получить доступ к элементу с php, потому что он выдает ошибку.
[offers] => stdClass Object
(
[@attributes] => stdClass Object
(
[id] => levaka0B8a
)
)
Как мне получить доступ к атрибутам?
Ответы
Ответ 1
Вы можете получить к нему доступ по строке:
echo $obj->{'@attributes'}->id; // levaka0B8a
Или переменная:
$name = '@attributes';
echo $obj->$name->id;
Дополнительные сведения о том, как определяются и используются переменные, см. в следующих документах:
- Основы переменных - Полезно для изучения того, что можно получить в виде переменной без необходимости использовать строки.
- Переменные переменные - Как мы использовали переменную в качестве имени для другой переменной. Это может быть опасно, поэтому тщательно проведите осторожность.
Ответ 2
Вы можете сделать это:
$object->{'@attributes'}
Ответ 3
Попробуйте использовать
$objSimpleXml->attributes()->id
Пример кода для ссылки
<?php
$string = <<<XML
<a>
<foo name="one" game="lonely">1</foo>
</a>
XML;
$xml = simplexml_load_string($string);
var_dump( $xml );
foreach($xml->foo[0]->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}
?>
Ответ 4
прямой доступ ниже от ircmaxwell или Richard Tuin, однако вы можете декодировать JSON со вторым параметром true и recive array insted, что может быть проще для доступа к