获取一个数字的PHP对象属性

我试图从JSON数据解码成一个PHP对象的属性。 这只是一个YouTube数据API请求,返回一个有内容对象的video对象;

[content] => stdClass Object ( [5] => https://www.youtube.com/v/r4ihwfQipfo?version=3&f=videos&app=youtube_gdata [1] => rtsp://v4.cache7.c.youtube.com/CiILENy73wIaGQn6pSL0waGIrxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp [6] => rtsp://v6.cache3.c.youtube.com/CiILENy73wIaGQn6pSL0waGIrxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp ) 

 $object->content->5 

引发“意想不到的T_DNUMBER” – 这是非常有意义的。 但是,我怎样才能得到一个数字的价值?

我相信我应该知道这一点。 提前致谢。

这应该工作:

$object->content->{'5'}

另一种可能性是使用json_decode的第二个参数:

 $obj = json_decode(str, true); 

你得到一个数组而不是一个PHP对象,然后你可以像往常一样索引:

 $obj['content'][5] 

另一个问题是将对象转换为数组。

 $array = (array) $object; $array['content'][5]; 

JSON编码,然后解码你的对象传递true作为解码函数中的第二个参数。 这将返回一个关联数组。

 $array = json_decode(json_encode($object), true); 

现在你可以使用你的新数组了

 echo $array['content']['5']; 

如果通过将数组转换为对象来创build对象,则使用$object->content->{'5'}将不起作用。

更详细的描述可以在这里find: https : //stackoverflow.com/a/10333200/58795