eval

(PHP 3, PHP 4, PHP 5 )

eval -- Exécute une chaîne comme un script PHP

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.

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.

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().