我正在尝试访问具有属性#text的StdClass的一部分。 PHP使用'#'进行评论,因此我无法让PHP解析它而不是评论。 StdClass的一个例子在下面
stdClass Object
(
[artist] => stdClass Object
(
[name] => John Denver
[mbid] => 34e10b51-b5c6-4bc1-b70e-f05f141eda1e
[url] => http://www.last.fm/music/John+Denver
[image] => Array
(
[0] => stdClass Object
(
[#text] => http://userserve-ak.last.fm/serve/34/521025.jpg
[size] => small
我试图通过以下方式访问它:
$json->artist->image[0]->#text
但是如何逃避'#'或告诉php以不同方式解释它。或者是否有其他格式可以找到#text属性。
我也尝试过:
$json['artist']['image'][0]['#text']
但是我收到了错误。我确信这很简单,但现在真的让我感到高兴。
答案 0 :(得分:4)
您可以使用以下代码访问此类属性:
$object->{'#text'}
答案 1 :(得分:0)
它似乎是JSON数据,因此在解码时,您还可以将第二个参数设置为true:
$json = json_decode($input, true);
现在你可以使用它了:
$json['artist']['image'][0]['#text']
答案 2 :(得分:0)
引用另一个答案,您可以将密钥放入变量中,通过此变量访问它。
$var='myvarwithstrangecharacters$asdfas#';
$object->$var;//do whatever you want
自: How do I access a PHP object attribute having a dollar sign?