Eval () PHP Construct

De PHP eval () construct wordt gebruikt om een ​​invoertekenreeks als PHP te evalueren en vervolgens als zodanig te verwerken. Eval () is geen functie, maar het werkt als een functie in die zin dat het alles uitvoert - behalve dat het in plaats van als tekst wordt uitgevoerd, het als PHP-code wordt uitgevoerd. Een gebruik van de constructie eval () is om code op te slaan in een database om later uit te voeren.

Voorbeeld van Eval () Language Construct

Hier is een eenvoudig voorbeeld van codering voor de taalconstructie eval ().

 "; 

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

 $ a afdrukken. "

"; 

 ?> 

Dit codevoorbeeld wordt uitgevoerd Mijn vrienden zijn $ name en $ name2 wanneer voor het eerst opgeroepen met de print-opdracht, en deze wordt uitgevoerd Mijn vrienden zijn Joe en Jim wanneer de tweede keer wordt aangeroepen na het uitvoeren van eval ().

Vereisten en kenmerken van Eval ()

  • De doorgegeven code kan niet worden verpakt in PHP-tags voor openen en sluiten.
  • De doorgegeven code moet een geldige PHP zijn.
  • Alle uitspraken moeten worden afgesloten met een puntkomma.
  • EEN terugkeer statement beëindigt de code-evaluatie.
  • Elke variabele die is gedefinieerd of gewijzigd in eval () blijft behouden nadat deze is beëindigd.
  • Wat een fatale fout optreedt in de geëvalueerde code, wordt het script afgesloten.
  • Omdat eval () een taalconstructie is en geen functie, kan het niet worden gebruikt in functies van een hogere orde.

Het gevaar van het gebruik van Eval ()

De PHP-handleiding ontmoedigt het gebruik van de eval () -constructie en benadrukt dat het gebruik ervan "zeer gevaarlijk" is omdat willekeurige PHP-code kan worden uitgevoerd. Gebruikers wordt opgedragen om een ​​andere optie dan eval () te gebruiken, tenzij dat niet mogelijk is. Het gebruik van PHP eval () construct houdt beveiligingsrisico's in.