Description
mixed
eval ( string code_str )
eval() évalue la chaîne
code_str comme un script PHP.
Parmi les utilisations possibles, cette fonction permet de stocker
du code dans une base de données, pour utilisation ultérieure.
code_str ne doit pas nécessairement contenir des
balises d'ouvertures de
PHP.
Il faut bien garder en tête que le code passé
à eval() doit être valide, y
compris les points virgules de fin de lignes et les séquences
d'échappement, sinon l'exécution se terminera. Pour mélanger des sorties
HTML et du code PHP, vous pouvez utiliser une balise de fermeture de
PHP pour quitter le mode PHP.
N'oubliez pas que les variables utilisées dans la fonction
eval() resteront accessibles dans le script principal.
Une commande return terminera l'évaluation de
la chaîne immédiatement. Depuis PHP 4, eval() retourne
NULL sauf si return est appelée 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.
Dans le cas d'une erreur fatale dans le code évalué, l'ensemble du script se
terminera. En PHP 3, eval() ne retourne pas de valeur.
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. |
Astuce : 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 chaîne.
Voir aussi
call_user_func().