eval
(PHP 4, PHP 5, PHP 7)
eval — Exécute une chaîne comme un script PHP
Description
Évalue le code
fourni comme étant du code PHP.
La construction de langage eval() est très dangereuse car elle autorise l'exécution de code PHP arbitraire. Son utilisation est vivement déconseillée. Si vous avez soigneusement vérifié qu'il n'y a pas d'autres options que de l'utiliser, gardez une attention toute particulière à ne pas y passer de données provenant d'un utilisateur sans les avoir précédemment validées minutieusement.
Liste de paramètres
-
code
-
Code PHP valide à évaluer.
Le code ne doit pas être entouré de balises PHP ouvrante et fermante, i.e. 'echo "Hi!";' doit être passé au lieu de '<? echo "Hi!"; >'. Il est toujours possible de quitter et de retourner en mode PHP en utilisant les balises PHP appropriées, i.e. 'echo "En mode PHP !"; ?>En mode HTML !<?php echo "Retour en mode PHP !";'.
Mise à part cela, le code PHP passé doit être valide. Ceci inclut que toutes les instructions doivent se terminer par un point-virgule. 'echo "Hi!"' par exemple résultera en une erreur fatale, alors que 'echo "Hi!";' fonctionnera.
Une instruction return terminera immédiatement l'évaluation du code.
Le code sera exécuté dans le scope du code appelant la fonction eval(). Aussi, toutes les variables définies ou modifiées dans l'appel à la fonction eval() resteront visibles après la fin de l'exécution de la fonction.
Valeurs de retour
eval() retourne NULL
sauf si
return est appelé dans le code évalué,
auquel cas la valeur passée à return
est retournée. Dans le cas d'une erreur de syntaxe dans
le code évalué, eval() retourne FALSE
et l'exécution du code suivant continue normalement. Il
n'est pas possible d'attraper l'erreur d'analyse de la
fonction eval() en utilisant la fonction
set_error_handler().
Exemples
Exemple #1 Exemple avec eval() - concaténation de texte
<?php
$string = 'tasse';
$name = 'café';
$str = 'Ceci est une $string avec mon $name dedans.<br />';
echo $str;
eval( "\$str = \"$str\";" );
echo $str;
?>
L'exemple ci-dessus va afficher :
Ceci est une $string avec mon $name dedans. Ceci est une tasse avec mon café dedans.
Notes
Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.
Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une string.
Note:
Dans le cas d'une erreur fatale dans le code évalué, l'ensemble du script se terminera.
Version en cache
05/11/2024 17:45:37 Cette version de la page est en cache (à la date du 05/11/2024 17:45:37) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-eval.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.