Разница в доступе к массивам в PHP 5.3 и 5.4 или некоторое несоответствие конфигурации?


Я пытаюсь получить доступ к вложенному элементу массива следующим образом:

$dbSettings = $sm->get( 'Config' )[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];

Он находится внутри Module.php проекта Zend framework 2. $sm->get('Config') возвращает массив, к которому я могу получить доступ с помощью кода выше локально, с PHP 5.4, делая это на машине клиента, это дает мне ошибку:

Parse error: syntax error, unexpected '[' in /home/.../azk/module/Main/Module.php on line 121

Есть ли какая-либо разница в PHP 5.3 5.4 в доступе к вложенным массивам или у меня есть некоторая конфигурация PHP по умолчанию, которая установлена по-разному на клиентах machne?

1 7

1 ответ:

Разыменование массива , которое вы используете, было введено в PHP 5.4 и не будет работать в PHP 5.3.

Итак

$dbSettings = $sm->get( 'Config' )[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];

Должно быть:

$dbSettings = $sm->get( 'Config' );
$params     = $dbSettings[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];