我有两行代码:
$arr1 = $obj1->$arr2[$obj2->prop1];
echo $arr1[0]->prop2;
我希望将它们放在一行,如下:
$arr1 = ($obj1->$arr2[$obj2->prop1])[0]->prop2;
但是当我尝试这样做时,PHP会抛出错误
Parse error: syntax error, unexpected '[' in ...
是否有可能以某种方式将这两条线组合成一条线?我也尝试在第一部分周围使用括号和方括号而不是括号,但没有快乐。
答案 0 :(得分:2)
您的代码可能写成:
$arr1 = $obj1->{$arr2[$obj2->prop1]}[0]->prop2;
- 我正在将$arr2
视为您要申请取消引用对象的变量。