PHP : Passage de code php dans une variable
Résolu/Fermé
A voir également:
- PHP : Passage de code php dans une variable
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Expert php - Télécharger - Langages
- Php echo image ✓ - Forum PHP
5 réponses
Bonjour
Ton premier code était presque bon, juanou :
Ton premier code était presque bon, juanou :
<?php function faireuntest ($test) { if ( eval("return(".$test.");") ) echo 'ok'; else echo 'pas ok'; } faireuntest( "5+5===10" ); ?>
juanou
Messages postés
137
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
23 août 2013
58
19 nov. 2009 à 19:04
19 nov. 2009 à 19:04
Tu as essayé avec eval ? (https://www.php.net/manual/fr/function.eval.php
Si mon code fonctionne, ça devrait afficher "ok".
ps : attention toutefois avec eval. On recommande souvent de ne pas y avoir recours. On dit même que "eval is evil" !
<?php function faireuntest ($test) { if ( eval($test) ) echo 'ok'; else echo 'pas ok'; } faireuntest( "5+5===10" ); ?>
Si mon code fonctionne, ça devrait afficher "ok".
ps : attention toutefois avec eval. On recommande souvent de ne pas y avoir recours. On dit même que "eval is evil" !
Résultat :
Parse error: syntax error, unexpected $end in /home/_____/public_html/_____/_____/Php/_____/_____/_____.php(4) : eval()'d code on line _____ pas ok
juanou
Messages postés
137
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
23 août 2013
58
19 nov. 2009 à 19:45
19 nov. 2009 à 19:45
ah... mince...
Mais j'ai trouvé autre chose.
Ca fait un peu bidouille mais ça a l'air de marcher :
ça devrait afficher :
Mais j'ai trouvé autre chose.
Ca fait un peu bidouille mais ça a l'air de marcher :
<?php $i = 0; function faireuntest ($test) { global $i; eval( 'function tmp'.$i.'() {return '.$test.';}; $tmp = tmp'.$i.'();' ); if ( $tmp ) echo "ok<br />"; else echo "pas ok<br />"; $i++; } faireuntest("3+3==6"); faireuntest("3+3==7"); ?>
ça devrait afficher :
ok pas ok
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question