Как получить доступ к члену stdClass в PHP, который начинается с @

У меня есть некоторый объект json, который я декодировал, и один из атрибутов начинается с «@», и я не могу получить доступ к элементу с php, потому что он выдает ошибку.

[offers] => stdClass Object ( [@attributes] => stdClass Object ( [id] => levaka0B8a ) ) 

Как я могу получить доступ к атрибутам?

Вы можете получить к нему доступ по строке:

 echo $obj->{'@attributes'}->id; // levaka0B8a 

Или переменная:

 $name = '@attributes'; echo $obj->$name->id; 

Дополнительные сведения о том, как определяются и используются переменные, см. В следующих документах:

  • Основы переменных – полезно для изучения того, к чему можно обращаться как переменной без необходимости использовать строки.
  • Переменные переменные. Как мы использовали переменную, чтобы действовать как имя для другой переменной. Это может быть опасно, поэтому осторожно

Вы можете сделать это:

 $object->{'@attributes'} 

Попробуй использовать,

 $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"; } ?> 

прямой доступ ниже от ircmaxwell или Richard Tuin, однако вы можете декодировать JSON со вторым параметром true и recive array insted, что может быть проще для доступа