用PHP拉开stdclass

时间:2012-06-05 11:41:54

标签: php json stdclass

我正在尝试访问具有属性#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']

但是我收到了错误。我确信这很简单,但现在真的让我感到高兴。

3 个答案:

答案 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?