Aller au contenu

dans un if remplacer le comparateur par une variable


Sujets conseillés

Posté

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


<?php
if$ordre == 'croissant')
{
$signe = '>' ;
}
elseif($ordre == 'decroissant')
{
$signe = '<' ;
}

// et la ce que je veux faire
if($var1 $signe $var2)
{
...
}

Savez vous si c'est possible ?

Merci d'avance

Posté

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.

Posté

...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.

Posté

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 ;
}
}

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...