PHP : Passage de code php dans une variable
Résolu
Laurraine
-
Laurraine -
Laurraine -
Bonjour à tous,
J'aimerai passer du code php php comme argument d'une fonction existante c'est-à-dire :
Par exemple
Doit donner le même résultat que :
Merci beaucoup !!!!
J'aimerai passer du code php php comme argument d'une fonction existante c'est-à-dire :
function faireUnTest($codeDuTest) {
if(interpréter_le_contenu_de_la_variable_comme_code_php($codeDuTest)){
(...)
}
}
Par exemple
faireUnTest("1+1==2") ;
Doit donner le même résultat que :
if(1+1==2){
(...)
}
}
Merci beaucoup !!!!
Configuration: Windows 7 Firefox 3.5.5
5 réponses
-
Bonjour
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" ); ?> -
Tu as essayé avec eval ? (https://www.php.net/manual/fr/function.eval.php
<?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
-
ah... mince...
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 -