PHP 7.0更新
PHP
7引入了对在解析器级别处理间接变量和属性的方式的更改(有关更多详细信息,请参见相应的RFC)。这使实际行为更接近预期,并意味着在这种情况下
$obj->$field[0]将产生预期的结果。
在不需要(现在已改进)默认行为的情况下,仍然可以使用花括号将其覆盖,如下所示。
原始答案
像这样写访问:
$obj->{$field}[0]每当由于变量变量引起歧义时,这种“用大括号括起来”的技巧在PHP中很有用。
考虑一下初始代码
$obj->$field[0]-这是否意味着“访问名称是在属性中的属性
$field[0]”,还是“使用
0名称是在属性中的属性的键访问元素
$field?”
大括号可以使您显得清晰。



