1

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

但我得到一个错误。我敢肯定这很简单,但此刻它真的让我着迷。

4

3 回答 3

4

您可以使用以下代码访问此类属性:

$object->{'#text'}
于 2012-06-05T11:44:23.953 回答
0

引用另一个答案,您可以将密钥放入变量中并通过此变量访问它。

$var='myvarwithstrangecharacters$asdfas#';

$object->$var;//do whatever you want

来自: 如何访问具有美元符号的 PHP 对象属性?

于 2012-10-30T22:28:31.290 回答
0

好像是json数据,所以解码的时候,也可以设置第二个参数为true:

$json = json_decode($input, true);

现在您可以使用它:

$json['artist']['image'][0]['#text']
于 2012-06-05T11:47:44.453 回答