2010-12-07 10 views
14

Estoy trabajando con la API de datos de YouTube por PHP y solicitando un feed de video de un usuario específico en formato json. El resultado después de json_decode es la siguiente (ejemplo resumido):Acceder a un objeto PHP con signo de dólar como nombre de nodo

stdClass Object 
(
    [version] => 1.0 
    [encoding] => UTF-8 
    [feed] => stdClass Object 
     (
      [xmlns] => http://www.w3.org/2005/Atom 
      [xmlns$media] => http://search.yahoo.com/mrss/ 
      [xmlns$openSearch] => http://a9.com/-/spec/opensearchrss/1.0/ 
      [xmlns$gd] => http://schemas.google.com/g/2005 
      [xmlns$yt] => http://gdata.youtube.com/schemas/2007 
    ) 
) 

Mi pregunta es: ¿cómo puedo acceder, por ejemplo, el "$ medios xmlns" nodo con PHP? Dentro del signo de dólar, ¿no funcionará o hay una manera que aún no he obtenido?

Respuesta

29

Esto funcionará:

echo $object->feed->{'xmlns$media'}; 

Como alternativa, se puede decir json_decode para devolver una matriz:

$array = json_decode($json, true); 
echo $array['feed']['xmlns$media']; 
3

Si utiliza comillas simples en lugar de comillas dobles, no se evaluará el signo de dólar. En términos generales, usted debe conseguir en el hábito de usar comillas simples a menos que realmente necesita comillas dobles para algo (como valores hexadecimales escapados)

Cuestiones relacionadas