使用美元符号作为节点名称访问PHP对象

时间:2010-12-07 16:11:21

标签: php json youtube-api

我正在使用每个PHP的YouTube数据API,并以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
    )
)

我的问题是:如何使用PHP访问节点“xmlns $ media”?在美元符号内,它不会起作用,还是有一种我没有得到的方式?

2 个答案:

答案 0 :(得分:30)

这将有效:

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

或者,您可以告诉json_decode返回一个数组:

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

答案 1 :(得分:3)

如果您使用单引号而不是双引号,则不会评估美元符号。一般来说,你应该养成使用单引号的习惯,除非你真的需要双引号(例如转义的十六进制值)