복붙노트

PHP 5.3 및 5.4 또는 일부 구성 불일치로 배열에 액세스 할 때의 차이점은 무엇입니까?

PHP

PHP 5.3 및 5.4 또는 일부 구성 불일치로 배열에 액세스 할 때의 차이점은 무엇입니까?

다음과 같이 중첩 배열 요소에 액세스하려고합니다.

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

그것은 Zend의 프레임 워크 2 프로젝트의 Module.php 안에 있습니다. $ 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에서 중첩 배열에 액세스하는 데 차이가 있습니까? 아니면 클라이언트 machne에서 다르게 설정되는 기본 PHP 구성이 있습니까?

해결법

  1. ==============================

    1.사용중인 배열 참조 해제는 PHP 5.4에서 도입되었으며 PHP 5.3에서는 작동하지 않습니다.

    사용중인 배열 참조 해제는 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' ];
    
  2. from https://stackoverflow.com/questions/16751348/difference-in-accessing-arrays-in-php-5-3-and-5-4-or-some-configuration-mismatch by cc-by-sa and MIT license