例如,我知道如何使用任意一组键并使用它们来制作这样的对象引用...
$arr = array("A", "B", "C");
foreach($arr as $key):
echo $obj->{$key} . "\n";
endforeach;
// prints $obj->A, $obj->B and $obj->C
但是,如果我想要访问的对象中有多个级别的引用,该怎么办?是否可以动态添加更多箭头操作符?
$arr = array(array("A", "B"),
array("C", "D", "E"),
array("F"));
foreach($arr as $key_arr):
// ???
endforeach;
// prints $obj->A->B, $obj->C->D->E, $obj->F
答案 0 :(得分:4)
您必须遍历名称并在回显之前维护最后一个对象的引用。
foreach($arr as $key_arr) {
$ref = $obj ;
foreach ($key_arr as $item) {
$ref = $ref->{$item} ; // $obj->A, then $obj->A->B
}
echo $ref ;
}
$ref = $obj
$ref = $ref->A
$ref = $ref->B
$ref->A->B