Ответ 1
Это будет работать:
echo $object->feed->{'xmlns$media'};
В качестве альтернативы вы можете сообщить json_decode
о возврате массива:
$array = json_decode($json, true);
echo $array['feed']['xmlns$media'];
Я работаю с API данных YouTube на PHP и запрашиваю видео-канал от конкретного пользователя в json-формате. Результатом после json_decode является следующий (сокращенный пример):
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
)
)
Мой вопрос: как я могу получить доступ, например, к node "xmlns $media" с помощью PHP? В пределах знака доллара это не сработает или есть способ, который я еще не получил?
Это будет работать:
echo $object->feed->{'xmlns$media'};
В качестве альтернативы вы можете сообщить json_decode
о возврате массива:
$array = json_decode($json, true);
echo $array['feed']['xmlns$media'];
Если вы используете одиночные кавычки вместо двойных кавычек, знак доллара не будет оцениваться. Вообще говоря, вы должны привыкнуть использовать одиночные кавычки, если вам действительно не нужны двойные кавычки для чего-либо (например, экранированные шестнадцатеричные значения)