Aller au contenu

dans un if remplacer le comparateur par une variable


sparh

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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