Eval () PHP Construct

Il PHP eval () Il costrutto viene utilizzato per valutare una stringa di input come PHP e quindi elaborarla come tale. Eval () non è una funzione, ma funziona come uno nel senso che genera tutto, tranne che invece di mostrarlo come testo, lo genera come codice PHP da eseguire. Un uso del costrutto eval () è quello di archiviare il codice in un database da eseguire in seguito.

Esempio di Eval () Language Construct

Ecco un semplice esempio di codifica per il costrutto del linguaggio eval ().

 "; 

 eval ("\ $ a = \" $ a \ ";"); 

 stampa $ a. "

"; 

 ?> 

Questo esempio di codice restituisce I miei amici sono $ name e $ name2 quando viene chiamato per la prima volta con l'istruzione print e viene generato I miei amici sono Joe e Jim quando viene chiamato la seconda volta dopo aver eseguito eval ().

Requisiti e caratteristiche di Eval ()

  • Il codice passato non può essere inserito nell'apertura e nella chiusura dei tag PHP.
  • Il codice passato deve essere PHP valido.
  • Tutte le istruzioni devono essere terminate con un punto e virgola.
  • UN ritorno L'istruzione termina la valutazione del codice.
  • Qualsiasi variabile definita o modificata in eval () rimane dopo che termina.
  • Quale errore irreversibile si verifica nel codice valutato, lo script viene chiuso.
  • Poiché eval () è un costrutto di linguaggio e non una funzione, non può essere utilizzato in funzioni di ordine superiore.

Il pericolo di usare Eval ()

Il manuale di PHP scoraggia l'uso del costrutto eval (), sottolineando che il suo uso è "molto pericoloso" perché può essere eseguito codice PHP arbitrario. Agli utenti viene richiesto di utilizzare qualsiasi opzione diversa da eval () a meno che ciò non sia possibile. L'uso del costrutto PHP eval () presenta rischi per la sicurezza.