$chaine = "if (test == 1 or test == 2 or test == 3)"; eval($chaine);
C'est quoi, test ?
Une idée à tout hasard : $chaine = 'if ($test == 1 or $test == 2 or $test == 3)';
Cela dit, il y a sûrement plus propre que de passer par un eval().
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
bruno modulix
Jacques Meunier wrote:
Bonjour,
je fais une boucle pour incrémenter une chaine qui a pour forme définitive :
$chaine = "if (test == 1 or test == 2 or test == 3)";
quand je fais
eval($chaine); { instructions
} ca ne marche pas ... snif
A tout hasard : $chaine = "if ($test == 1 or $test == 2 or $test == 3)"; ou $chaine = 'if $test == 1 or $test == 2 or $test == 3)';
Maintenant, ce n'est pas forcément la meilleure solution (enfin, difficile à dire sans connaître le contexte, mais...). Perso, je partirais plutôt sur un truc genre:
// NB : ce tableau peut of course être construit dans une boucle $test_values = Array(1, 2, 3); if (in_array($test, $test_values) { // le code }
Mais bon, je suppose que tu a de bonnes raisons pour avoir choisis une autre soluce, donc...
HTH -- bruno desthuilliers ruby -e "print ''.split('@').collect{|p| p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"
Jacques Meunier wrote:
Bonjour,
je fais une boucle pour incrémenter une chaine qui a pour forme
définitive :
$chaine = "if (test == 1 or test == 2 or test == 3)";
quand je fais
eval($chaine);
{
instructions
}
ca ne marche pas ... snif
A tout hasard :
$chaine = "if ($test == 1 or $test == 2 or $test == 3)";
ou
$chaine = 'if $test == 1 or $test == 2 or $test == 3)';
Maintenant, ce n'est pas forcément la meilleure solution (enfin,
difficile à dire sans connaître le contexte, mais...). Perso, je
partirais plutôt sur un truc genre:
// NB : ce tableau peut of course être construit dans une boucle
$test_values = Array(1, 2, 3);
if (in_array($test, $test_values) {
// le code
}
Mais bon, je suppose que tu a de bonnes raisons pour avoir choisis une
autre soluce, donc...
HTH
--
bruno desthuilliers
ruby -e "print 'onurb@xiludom.gro'.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"
je fais une boucle pour incrémenter une chaine qui a pour forme définitive :
$chaine = "if (test == 1 or test == 2 or test == 3)";
quand je fais
eval($chaine); { instructions
} ca ne marche pas ... snif
A tout hasard : $chaine = "if ($test == 1 or $test == 2 or $test == 3)"; ou $chaine = 'if $test == 1 or $test == 2 or $test == 3)';
Maintenant, ce n'est pas forcément la meilleure solution (enfin, difficile à dire sans connaître le contexte, mais...). Perso, je partirais plutôt sur un truc genre:
// NB : ce tableau peut of course être construit dans une boucle $test_values = Array(1, 2, 3); if (in_array($test, $test_values) { // le code }
Mais bon, je suppose que tu a de bonnes raisons pour avoir choisis une autre soluce, donc...
HTH -- bruno desthuilliers ruby -e "print ''.split('@').collect{|p| p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"
CrazyCat
Jacques Meunier wrote:
$chaine = "if (test == 1 or test == 2 or test == 3)"; quand je fais eval($chaine); ca ne marche pas ... snif
heu, $chaine = "if (($test == 1) or ($test == 2) or ($test == 3))"; si tu fais un eval de "test", je ne pense pas que tu obtiennes grand chose, il faut faire un eval de $test.
Je me trompe peut-être complètement, mais c'est une idée...
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.crazy-irc.net
Jacques Meunier wrote:
$chaine = "if (test == 1 or test == 2 or test == 3)";
quand je fais
eval($chaine);
ca ne marche pas ... snif
heu, $chaine = "if (($test == 1) or ($test == 2) or ($test == 3))";
si tu fais un eval de "test", je ne pense pas que tu obtiennes grand
chose, il faut faire un eval de $test.
Je me trompe peut-être complètement, mais c'est une idée...
--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net
$chaine = "if (test == 1 or test == 2 or test == 3)"; quand je fais eval($chaine); ca ne marche pas ... snif
heu, $chaine = "if (($test == 1) or ($test == 2) or ($test == 3))"; si tu fais un eval de "test", je ne pense pas que tu obtiennes grand chose, il faut faire un eval de $test.
Je me trompe peut-être complètement, mais c'est une idée...
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.crazy-irc.net
Bon ça solutionneras ton problème mais as-tu *vraiment* besoin de eval ? C'est une fonction dangereuse pas souvent activée sur tous les serveurs....
A mon avis tu devrais pouvoir trouver une solutions plus académique. Ce que tu veux c'est générer des conditions, dans le cas ci dessus on aurais pu écrire :
C'est quand même beaucoup plus propre et n'utilise pas la fonction eval. eval sert à évaluer des chaines de code php que par exemple l'utilisateur aurait pu rentrer. Si c'est ton code qui génère la condition, tu dois être capable de la faire dans autre chose qu'une chaine.
Bon ça solutionneras ton problème mais as-tu *vraiment* besoin de
eval ? C'est une fonction dangereuse pas souvent activée sur tous les
serveurs....
A mon avis tu devrais pouvoir trouver une solutions plus académique.
Ce que tu veux c'est générer des conditions, dans le cas ci dessus on
aurais pu écrire :
C'est quand même beaucoup plus propre et n'utilise pas la fonction
eval. eval sert à évaluer des chaines de code php que par exemple
l'utilisateur aurait pu rentrer. Si c'est ton code qui génère la
condition, tu dois être capable de la faire dans autre chose qu'une
chaine.
Bon ça solutionneras ton problème mais as-tu *vraiment* besoin de eval ? C'est une fonction dangereuse pas souvent activée sur tous les serveurs....
A mon avis tu devrais pouvoir trouver une solutions plus académique. Ce que tu veux c'est générer des conditions, dans le cas ci dessus on aurais pu écrire :
C'est quand même beaucoup plus propre et n'utilise pas la fonction eval. eval sert à évaluer des chaines de code php que par exemple l'utilisateur aurait pu rentrer. Si c'est ton code qui génère la condition, tu dois être capable de la faire dans autre chose qu'une chaine.