2010-07-07 3 views
7

Sto cercando di utilizzare array_walk con una funzione anonima, ma ho sempre l'errorefunzione PHP anonimo con array_walk

// Parse error: syntax error, unexpected T_FUNCTION in ... on line X 
if(!empty($myArray)) { 
    array_walk($myArray, function(&$value, $key){ // Line X 
    $value = '"'.$value.'"'; // Add quotes 
    }); 
} 

La sintassi del file circostante è corretto. qualche idea?

+5

Quale versione di PHP stai usando? –

risposta

7

Sì, vere funzioni anonime (chiusure) sono disponibili solo da PHP 5.3, ma è comunque possibile creare una funzione anonima in precedenza versioni di PHP utilizzando la chiamata create_function(), che può essere utilizzata con array_walk(). Qualcosa del tipo:

array_walk($myArray, create_function('&$value,$key', '$value = \'"\'.$value.\'"\';')); 
6

Controlla la tua versione di PHP ... funzioni anonime sono disponibili solo a partire dal 5.3 ...

+0

Oh, non avevo idea che si trattasse di un problema di versione. Grazie! – ash