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 !!!!
A voir également:
- PHP : Passage de code php dans une variable
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - 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" );
?>
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
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