无法通过数组值访问对象属性

时间:2017-05-22 16:32:16

标签: php mysqli

我不明白为什么这不适用于PHP 7.0

$obj = mysqli_fetch_object(...);
if (is_object($obj)) { // OK
 echo $obj->name;
 // writes Hello
 $my_var = "name";
 echo $obj->$my_var; 
 // writes Hello
 $my_arr = array('test' => array('col' => 'name'));
 echo $obj->$my_arr['test']['col']; // <-- this didnot work
 // writes nothing :( 
}

我还能改正吗?

1 个答案:

答案 0 :(得分:1)

->[]之前执行,因此您的代码相当于:

echo ($obj->$my_arr)['test']['col'];

您可以使用{}更改该内容:

echo $obj->{$my_arr['test']['col']};