sparh Posté 19 Février 2010 Posté 19 Février 2010 Bonjour, je sais pas si mon titre est clair mais voià ce que je souhaite faire et je ne sait pas 1 si c'est possible 2 quelle syntaxe utiliser <?phpif$ordre == 'croissant'){$signe = '>' ;}elseif($ordre == 'decroissant'){$signe = '<' ;}// et la ce que je veux faireif($var1 $signe $var2){...} Savez vous si c'est possible ? Merci d'avance
jcaron Posté 19 Février 2010 Posté 19 Février 2010 Plein de possibilités if (($ordre == 'croissant' && $var1 > $var2) || ($ordre == decroissant' && $var1 < $var2)) if (($ordre == 'croissant')?($var1 > $var2)$var1 < $var2)) if ((($ordre == 'croissant')?1:-1)*($var2-$var1)) > 0) (il est possible que le dernier soit à l'envers, j'ai la flemme d'y réfléchir plus que ça) Et probablement beaucoup d'autres... Jacques.
captain_torche Posté 19 Février 2010 Posté 19 Février 2010 Sinon, pour faire comme tu le souhaitais au début, tu peux sans doute utiliser la fonction eval().
jcaron Posté 19 Février 2010 Posté 19 Février 2010 ...dont il est utile de préciser que si ce qui tu lui fournis n'est pas très strictement vérifié et contrôlé, tu ouvres un énoooooorme trou de sécurité. En plus de ça, l'exécution d'un eval prend nettement plus de temps que le même code sans eval. Vu que le test va très vraisemblablement être dans une boucle pour un tri, c'est à proscrire... Jacques.
sparh Posté 19 Février 2010 Auteur Posté 19 Février 2010 Bonsoir et merci mais je pense que je m'étais mal exprimé. Enfin j'ai fini par trouver une solution en faisant une fonction. function compare_score($score,$score_comparaison,$type_de_tri){ if($type_de_tri == 'croissant') // 2 { if($score < $score_comparaison) return true ; } elseif($type_de_tri == 'decroissant') //type 0 et 1 { if($score > $score_comparaison) return true ; } else { return false ; }}
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant