2010-09-16 7 views
5

Ho una determinata parte di codice che sto tentando di utilizzare con la versione 5.2.14 di PHP. È incompatibile ?? Ho eseguito il seguente,Versione PHP 5.2.14/Errore di analisi: errore di sintassi, T_FUNCTION imprevisto, in attesa di ')'

jailshell-3.2$ php -l /XYZ/functions.php 

e dà:

Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /XYZ/functions.php on line 2115 Errors parsing /XYZ/functions.php

Il codice è:

2114 $range = array_map(
2115    function (DatePeriod $p) use ($vt2) { 
2116    $res = array(); 

risposta

6

il codice utilizza anonymous functions che sono stati supportati in PHP 5.3. Quindi, hai bisogno di PHP 5.3 per farlo funzionare. Aggiorna l'installazione PHP del tuo server.

Le funzioni anonime, note anche come chiusure, consentono la creazione di funzioni senza nome specificato.

4

Si sta utilizzando anonymous functions che sono disponibili dal PHP 5.3.0.

Per risolvere questo problema è possibile aggiornare il PHP come suggerito in un'altra risposta.

In alternativa è possibile definire la funzione di fuori array_map e quindi utilizzare tale nome della funzione nella chiamata a array_map

3

Dal manuale PHP su Anonymous Functions:

Note: Anonymous functions are available since PHP 5.3.0.

prima 5.3.0, farlo in questo modo:

$range = array_map("name_of_function_to_call", $myArray);