В PHP 7 введены изменения в отношении того, как обрабатываются косвенные переменные и свойства на уровне анализатора (см. соответствующий RFC для более подробно). Это приближает фактическое поведение к ожидаемому и означает, что в этом случае $obj->$field[0]
будет выдавать ожидаемый результат.
В случаях, когда нежелательное поведение по умолчанию (теперь улучшено), фигурные скобки все еще могут использоваться для переопределите его, как показано ниже.
Напишите такой доступ:
$obj->{$field}[0]
Этот трюк «заключить с фигурными скобками» полезен в PHP всякий раз существует неоднозначность из-за переменных переменных.
Рассмотрим исходный код $obj->$field[0]
- означает ли это «доступ к свойству, имя которого дано в $field[0]
», или «доступ к элементу с ключом 0
свойства, имя которого дано в $field
"? Скобки позволяют вам быть явным.