Evaluer une condition pour faire des IF dynamiques

Evaluer une condition pour faire des IF dynamiques - PHP - Programmation

Marsh Posté le 29-06-2005 à 14:59:19    

Bonjour,
Je stocke dans une chaine une condition exemple:

Code :
  1. $ma_condition="$cpt>=1 && statut==10";


 
Or ce que je veux l'evaluer...  
 
if($ma_condition) me renvoit toujours vrai ce qui est logique vu qu'il teste si la variable est alimenté ou seulement declarée...
 
Ce que je voudrais c'est qu'il  remplace le $ma_condition par la condition  $cpt>=1 && statut==10
de maniere a avoir if($cpt>=1 && statut==10)
 
Ma question est simple: comment evaluer une expression contenu dans une chaine?  
Merci  :)  

Reply

Marsh Posté le 29-06-2005 à 14:59:19   

Reply

Marsh Posté le 29-06-2005 à 15:13:50    

eval peut être ?
http://fr2.php.net/manual/fr/function.eval.php  
 :??:


Message édité par zapan666 le 29-06-2005 à 15:14:08

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-06-2005 à 15:29:55    

Je pense que ce que tu cherches à faire n'est pas possible en PHP, il faudrait un #define à la C. Et eval ne marchera pas pour ça a priori.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-06-2005 à 15:30:28    

sielfried tu as compris c'est un define qui faut :)

Reply

Marsh Posté le 29-06-2005 à 16:55:54    

et en mettant un "$test = ma condition" dans une string, faire un eval dessus, puis tester la valeur de $test, ca doit marcher.
 
PS : un test sur eval("return macondition" ) devrait marcher aussi ene PHP 4+ ...


Message édité par Gonzoide le 29-06-2005 à 16:57:55
Reply

Marsh Posté le 29-06-2005 à 17:24:16    


bah +1
Pourquoi eval ne serait pas adapté ?

Reply

Marsh Posté le 29-06-2005 à 17:52:39    

parce que eval ne fait que remplacer tes $var par leur valeur dans le contexte de ta page mais ne te renvoie pas de valeur de test...du moins je pense

Reply

Marsh Posté le 29-06-2005 à 18:01:33    

Gonzoide a écrit :

et en mettant un "$test = ma condition" dans une string, faire un eval dessus, puis tester la valeur de $test, ca doit marcher.
 
PS : un test sur eval("return macondition" ) devrait marcher aussi ene PHP 4+ ...


 
Ah ben wai en fait. [:figti]  
 

Code :
  1. if (eval('return ' . $ma_condition . ';')) {
  2.    ...
  3. }


 
Reste que si le truc peut être foutu différemment, c'est mieux. Chui pas un grand fan d'eval.


Message édité par sielfried le 29-06-2005 à 18:01:59

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 30-06-2005 à 20:20:42    

Merci ca marche et j'aurai jure les contraire avant :)
En tout cas ca m'a permis d'eviter la solution horrible des callbacks ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed