eval

(PHP 4, PHP 5, PHP 7, PHP 8)

evalEsegue una stringa come codice PHP

Descrizione

eval(string $code): mixed

Esegue la data stringa code come codice PHP.

Attenzione

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.

Elenco dei parametri

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 '<? echo "Ciao!"; >'. È comunque possibile uscire e rientrare nella modalità PHP attraverso l'utilizzo dei tag PHP appropriati, ad esempio: 'echo "In PHP mode!"; ?>In HTML mode!<? 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.

Valori restituiti

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().

Esempi

Example #1 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";
?>

Il precedente esempio visualizzerà:

This is a $string with my $name in it.
This is a cup with my coffee in it.

Note

Nota: Poiché questo è un costrutto del linguaggio e non una funzione, non può essere chiamato con le variabili funzione

Suggerimento

Come con qualsiasi cosa che invia il risultato direttamente al browser, è possibile utilizzare la funzione output-control per catturare l'uscita di questa funzione e salvarla - per esempio - in una stringa (per esempio).

Nota:

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

Vedere anche: