eval

Esegue una stringa come codice PHP

mixed eval(string $code)

Esegue la data stringa code come codice PHP.

eval è un costrutto del linguaggio molto pericoloso perché permette l'esecuzione di codice PHP arbitrario. Il suo uso è pertanto sconsigliato. Se si è certi che non esistono altre soluzioni al posto di usare eval, fare particolare attenzione a non inserire codice fornito dall'utente senza averlo preventivamente validato.

code Codice PHP valido da eseguire. Il codice non deve essere incluso nei tag di apertura e chisura di PHP. Ad esempio 'echo "Ciao!";' è corretto invece di 'Lt? echo "Ciao!"; Gt'. È comunque possibile uscire e rientrare nella modalità PHP attraverso l'utilizzo dei tag PHP appropriati, ad esempio: 'echo "In PHP mode!"; ?GtIn HTML mode!Lt? echo "Back in PHP mode!";'. Oltre a questo, valgono tutte le regole del codice PHP. Questo include l'inserimento al termine di ogni istruzione del punto e virgola. 'echo "Ciao!"' per esempio causerà un parse error, mentre 'echo "Ciao!";' funzionerà. Un'istruzione return causa immediatamente la terminazione del codice in corso di esecuzione dalla eval. L'ambito di esecuzione è ristretto a dove eval viene chiamata. Quindi qualsiasi variabile definita o modificata all'interno di eval rimarrà visibile dopo la sua terminazione.

eval ritorna null a meno che non venga richiamato return nel codice da valutare, in tal caso il valore passato a return viene ritornato. Se avviene un parse error nel codice valutato, eval ritorna false e l'esecuzione del codice seguente continua normalmente. Non è possibile catturare un parse error in eval usando set_error_handler.

Esempio di eval - semplice unione di testo <?php $string = 'cup'; $name = 'coffee'; $str = 'This is a $string with my $name in it.'; echo $str. "\n"; eval("\$str = \"$str\";"); echo $str. "\n"; ?> Example outputs This is a $string with my $name in it. This is a cup with my coffee in it.

Nota: In caso di fatal error nel codice valutato, l'intero script termina.

call_user_func