2011-01-11 14 views
10

Tengo un objeto json que decodifiqué, y uno de los atributos comienza con una "@" y no puedo acceder al elemento con php porque arroja un error.Cómo acceder a un miembro de un stdClass en PHP que comienza con un

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

¿Cómo procederé para acceder a los atributos?

+0

Este lugar parece como si fuera una extraña conversión de un SimpleXmlEle a una StdClass. ¿Puedes aclarar cómo obtuviste el vertedero? – Gordon

+0

esto es conversión de JSON no XML :) – bensiu

Respuesta

26

puede acceder a ella por una cadena:

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

o una variable:

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

Para obtener más información sobre las variables ¿Cómo se definen y utilizado, consulte los siguientes documentos:

  • Variable Basics - Útil para aprender a qué se puede acceder como variable sin necesidad de utilizar cadenas.
  • Variable Variables - Cómo utilizamos la variable para actuar como el nombre de otra variable. Esto puede ser peligroso así que ir con cuidado
9

Usted puede hacer esto:

$object->{'@attributes'} 
2

acceso directo está por debajo de ircmaxwell o Richard TUIN, sin embargo se puede decodificar JSON con el segundo parámetro verdadero y recive gama insted lo que podría ser una más fácil acceder a la

3

intenta utilizar , Código

$objSimpleXml->attributes()->id 

Muestra para referirse

Cuestiones relacionadas