PHP如何动态访问对象?

时间:2011-06-15 01:02:22

标签: php arrays object

我有以下对象:

$json = '{"response": {"status": {"message": "Success"}, "images": [{"url": "http://domain.com/images/0001.jpg"}, {"url": "http://domain.com/images/0001.jpg"}]}}'; 
$obj  = json_decode($json);

然后我有一个数组:

$obj_path = array('response', 'images');

我可以images$obj $obj->$obj_path[0]->$obj_path[1] $obj_path_count = count($obj_path); for($i=0; $i<$obj_path_count; $i++) { $obj_access_path .= '->' . $obj_path[$i]; //Build path to the access the object? } var_dump($obj . $obj_access_path); // Display object images {{1}}访问{{1}}如果我更加动态地执行此操作?沿着...的路线......

{{1}}

上面的代码给出了以下错误

  

类stdClass的对象不可能   转换为字符串

1 个答案:

答案 0 :(得分:3)

你无法访问这样的完整路径,插值只能达到一个深度。你可以这样做:

$obj_access = $obj;
foreach($obj_path as $path_item)
{
   $obj_access = $obj_access->$path_item;
}
var_dump($obj_access); // Display object images

虽然看看你的JSON,但我认为这不会有助于解决你想要解决的问题。