eval
Esegue una stringa come codice PHP
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.
call_user_func