2013-05-25 5 views
7

sto cercando di accedere elemento dell'array nidificato in questo modo:Differenza nell'accesso agli array in PHP 5.3 e 5.4 o qualche discrepanza di configurazione?

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

è dentro Module.php del progetto quadro 2 di Zend. $sm->get('Config') restituisce un array che io possa accedere con codice di cui sopra a livello locale, con PHP 5.4, mentre farlo sulla macchina del cliente, mi dà un errore:

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

C'è qualche differenza in PHP 5.3 < => 5.4 nell'accesso array annidati o ho qualche configurazione PHP predefinita che è impostata diversamente sui client machne?

risposta

20

Array dereferencing, che è quello che stai utilizzando, è stato introdotto in PHP 5.4 e non funzionerà in PHP 5.3.

Così

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

dovrebbero essere:

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

Ahhh grazie mille per la risposta rapida :) – kamil