ELSEIF dynamique

ViPHP
ViPHP | 5924 Messages

15 mai 2007, 09:58

Oki effectivement j'avias mal lu le truc. Bon maintenant passont au cas qui m'interesse et qui lui est a mon avis mort:

if($a>0).....
elseif($toto[1]>0).....
elseif($toto[2]>0).....
elseif($toto[3]>0).....
elseif($b>0).....
else .....

$toto ayant tjs un nb d'entre dynamique.
Ca marche pareil, sauf que tu utilises des if pour tester $a et $b, et un while pour tester ce qui est dynamique...

ViPHP
ViPHP | 3607 Messages

15 mai 2007, 09:59

il faudrait en effet nous en dire plus sur ton problème...
Depuis le début tu te cantonnes à nous donner des exemples qui n'ont que peu à voir avec ton problème, et tu cherches peut-être quelque chose de pas très logique...
Dis nous d'où sort ce tableau $toto ce $a ce $b, et ce que tu veux en faire précisément!

Eléphant du PHP | 113 Messages

18 mai 2007, 09:42

Bah ce que je veux faire c'est spécifiquement le dernier exemple donné.

C'est a dire je veux tester une ou plusieurs variables différentes fixes + une ou plusieurs variables de type tableau avec une longueur dynamique, le tout dans un ordre précis.

Cad que si la premier test est positif, tout s'arrête et on récupère l'erreur concerner.

Mais bon apparemment il n'existe aucune solution à part du bidouillage avec des variables :)
Donc sur le coup je vais pouvoir me débrouillez.

Merci à tous.

Eléphant du PHP | 199 Messages

18 mai 2007, 10:17

Bah au pire tu te débrouille avec une boucle pour "écrire" ta série de conditions (if, elseif, elseif...) dans une chaine et tu la passe par la fonction eval() qui exécute la chaine comme du code PHP.

Après à mon avis c'est pas très joli comme méthode ;) Je dis ça je dis rien ;)
Klomac - Blog Lambda

Mammouth du PHP | 804 Messages

18 mai 2007, 11:24

Au finale tu veux quoi comme résultat ?

quesque ça doit donner à l'écran

Parce que tu peux peu être manipuler ça dans une requête un peu plus travaillé en manipulant directement $toto

Mammouth du PHP | 804 Messages

18 mai 2007, 11:31

attend j'ai compris ton champ $toto sort d'un explode c'est la ton problème ? tu peux donc pas le traiter à la requête ?

ViPHP
ViPHP | 5924 Messages

18 mai 2007, 11:54

Bah ce que je veux faire c'est spécifiquement le dernier exemple donné.

C'est a dire je veux tester une ou plusieurs variables différentes fixes + une ou plusieurs variables de type tableau avec une longueur dynamique, le tout dans un ordre précis.

Cad que si la premier test est positif, tout s'arrête et on récupère l'erreur concerner.

Mais bon apparemment il n'existe aucune solution à part du bidouillage avec des variables :)
Donc sur le coup je vais pouvoir me débrouillez.

Merci à tous.
Il y aune solution, et je ne vois pas en quoi c'est du bidouillage :
if($a>0)
{
...
}
else
{

    for($i=0;$i<count($toto)&&$toto[$i]<=0;$i++);
    if(isset($toto[$i]))
    {
    ...
    }
    elseif($b>0)
    {
    ...
    }
    else
    {
    ...
    }

}
Sinon, je ne pense pas que eval soit la bonne solution, aussi bien au niveau codage, qu'au niveau performances.

Mammouth du PHP | 804 Messages

18 mai 2007, 12:06

oui mais $toto il sort d'ou :lol: tu veux pas nous le dire :D d'une requete?

ViPHP
ViPHP | 5924 Messages

18 mai 2007, 12:14

ah oui, bonne question, c'est vrai qu'il y a moyen de simplifier si tu nous en dit plus...