j'ai une recherche traitant plusieurs opérateurs, le soucis c'est que tout est typé en String et ce dans plusieurs variables.
J'étais donc parti dans le plus simple mais pas le plus optimisé pour commencer :
if($valeur['op'] == '=' && $val != $valeur['val'])
{
$trouve = false;
break;
}
elseif($valeur['op'] == '!=' && $val == $valeur['val'])
{
$trouve = false;
break;
}
elseif($valeur['op'] == '>' && $val <= $valeur['val'])
{
$trouve = false;
break;
}
elseif($valeur['op'] == '>=' && $val < $valeur['val'])
{
$trouve = false;
break;
}
elseif($valeur['op'] == '<' && $val >= $valeur['val'])
{
$trouve = false;
break;
}
elseif($valeur['op'] == '<=' && $val > $valeur['val'])
{
$trouve = false;
break;
}
PS : les break servent à me couper ma boucle de recherche (que je ne vous ai pas mis).Mais c'est tiptop, donc je cherchais un truc plus condensé, plus dynamique.
Je me suis donc penché vers eval(), même si je n'aime pas tellement son utilisation à vrai dire...
J'ai donc fait ceci mais qui m'envoie dans les choux :
eval('if(' . $val . ' ' . $valeur['op'] . ' ' . $valeur['val'] . ')
{
$trouve = false;
break;
}');
Auriez-vous une idée ? Ou même une meilleure méthode que eval() ?Un article traitant de recherche ?