Access a PHP-object with dollar-sign as node name

2019-01-23 04:24发布

I'm working with the YouTube Data API per PHP and requesting a video feed from a specific user in json-format. The result after json_decode is the following (shortened example):

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
    )
)

My question is: how can I access for example the node "xmlns$media" with PHP? Within the dollar-sign it won't work or is there a way which I didn't get yet?

2条回答
来,给爷笑一个
2楼-- · 2019-01-23 04:53

If you use single-quotes instead of double-quotes, the dollar sign won't be evaluated. Generally speaking, you should get in the habit of using single-quotes unless you really need double-quotes for something (such as escaped hex values)

查看更多
贪生不怕死
3楼-- · 2019-01-23 04:56

This will work:

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

Alternatively, you can tell json_decode to return an array:

$array = json_decode($json, true);
echo $array['feed']['xmlns$media'];
查看更多
登录 后发表回答