在PHP 5.3和5.4中访问数组的差异或某些配置不匹配?

kam*_*mil 7 php arrays zend-framework2

我正在尝试访问嵌套数组元素,如下所示:

$dbSettings = $sm->get( 'Config' )[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];
Run Code Online (Sandbox Code Playgroud)

它在Module.phpZend的框架2项目中.$sm->get('Config')返回一个数组,我可以使用PHP 5.4在本地上面的代码访问,同时在客户端的机器上这样做,它给我一个错误:

Parse error: syntax error, unexpected '[' in /home/.../azk/module/Main/Module.php on line 121
Run Code Online (Sandbox Code Playgroud)

PHP 5.3 <=> 5.4在访问嵌套数组方面有什么区别,或者我有一些默认的PHP配置在客户机上设置不同?

Joh*_*nde 20

您正在使用的数组解除引用是在PHP 5.4中引入的,并且在PHP 5.3中不起作用.

所以

$dbSettings = $sm->get( 'Config' )[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];
Run Code Online (Sandbox Code Playgroud)

需要是:

$dbSettings = $sm->get( 'Config' );
$params     = $dbSettings[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];
Run Code Online (Sandbox Code Playgroud)