Eval () PHP Construct

Das PHP eval () Mit construct wird eine Eingabezeichenfolge als PHP ausgewertet und dann als solche verarbeitet. Eval () ist keine Funktion, funktioniert aber in dem Sinne, dass es alles ausgibt - außer, dass es nicht als Text ausgegeben wird, sondern als auszuführender PHP-Code. Eine Verwendung des eval () -Konstrukts besteht darin, Code in einer Datenbank zu speichern, um ihn später auszuführen.

Beispiel für ein Eval () - Sprachkonstrukt

Hier ist ein einfaches Beispiel für die Codierung des eval () -Sprachenkonstrukts.

 "; 

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

 print $ a. "

"; 

 ?> 

Dieses Codebeispiel gibt aus Meine Freunde sind $ name und $ name2 Beim ersten Aufruf mit der print-Anweisung, und es wird ausgegeben Meine Freunde sind Joe und Jim beim zweiten Aufruf nach dem Ausführen von eval ().

Anforderungen und Eigenschaften von Eval ()

  • Der übergebene Code kann nicht in öffnende und schließende PHP-Tags eingeschlossen werden.
  • Der übergebene Code muss gültiges PHP sein.
  • Alle Anweisungen müssen mit einem Semikolon abgeschlossen werden.
  • EIN Rückkehr Anweisung beendet die Code-Auswertung.
  • Jede in eval () definierte oder geänderte Variable bleibt nach dem Beenden erhalten.
  • Was für ein schwerwiegender Fehler im ausgewerteten Code auftritt, wird das Skript beendet.
  • Da eval () ein Sprachkonstrukt und keine Funktion ist, kann es nicht in Funktionen höherer Ordnung verwendet werden.

Die Gefahr der Verwendung von Eval ()

Das PHP-Handbuch rät von der Verwendung des eval () -Konstrukts ab und betont, dass seine Verwendung "sehr gefährlich" ist, da beliebiger PHP-Code ausgeführt werden kann. Benutzer werden angewiesen, eine andere Option als eval () zu verwenden, sofern dies nicht möglich ist. Die Verwendung des PHP eval () -Konstrukts birgt Sicherheitsrisiken.