[Php] Fonction simple avec petit bug
Résolu/Fermé
djflexlive
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
-
21 déc. 2009 à 10:51
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 - 21 déc. 2009 à 12:22
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 - 21 déc. 2009 à 12:22
A voir également:
- [Php] Fonction simple avec petit bug
- Bug yahoo mail - Accueil - Mail
- Fonction si et - Guide
- Iphone 14 simple - Guide
- Easy php - Télécharger - Divers Web & Internet
- Petit 3 ✓ - Forum Word
5 réponses
Bonjour
C'est syntaxiquement correct, mais ça ne fait certainement pas ce que tu veux. En effet, case ( $value > $i+0.5 ) ne signifie absolument pas "dans le cas où $value est supérieur à $i+5". Regarde la signification du switch ... case : on calcule ce qu'il y a dans le switch (ici une simple variable) et ce qu'il y a dans le case. Ce que tu as mis dans le case, c'est une comparaison, c'est à dire un truc qui est soit vrai soit faux.
Si $value vaut 0, $value > $i+0.5 est faux. Mais $value est lui-même faux (car 0 = faux). Donc la variable du switch ($value) est bien égale à l'expression du case ( $value > $i+0.5 ) puisque les deux sont égaux à faux. Donc on exécute ce case là
Voilà pourquoi ça ne marche pas comme tu veux.
Avec des 'if' tu t'en sortiras sans problème.
C'est syntaxiquement correct, mais ça ne fait certainement pas ce que tu veux. En effet, case ( $value > $i+0.5 ) ne signifie absolument pas "dans le cas où $value est supérieur à $i+5". Regarde la signification du switch ... case : on calcule ce qu'il y a dans le switch (ici une simple variable) et ce qu'il y a dans le case. Ce que tu as mis dans le case, c'est une comparaison, c'est à dire un truc qui est soit vrai soit faux.
Si $value vaut 0, $value > $i+0.5 est faux. Mais $value est lui-même faux (car 0 = faux). Donc la variable du switch ($value) est bien égale à l'expression du case ( $value > $i+0.5 ) puisque les deux sont égaux à faux. Donc on exécute ce case là
Voilà pourquoi ça ne marche pas comme tu veux.
Avec des 'if' tu t'en sortiras sans problème.
biboo_
Messages postés
1249
Date d'inscription
jeudi 20 août 2009
Statut
Membre
Dernière intervention
14 mars 2012
106
21 déc. 2009 à 11:56
21 déc. 2009 à 11:56
Parce que dans le switch, les case font références à des entiers ou des strings tandis que dans ton cas, tu fais références à un booléen :
il ne faut pas comprendre
"si ta $value est aussi vrai que x est supérieur à y" ce qui n'a strictement aucun sens dans la logique (bien que ça soit syntaxiquement cohérence.
il ne faut pas comprendre
case ( x > y )comme "dans le cas où x est supérieur à y", mais comme
"si ta $value est aussi vrai que x est supérieur à y" ce qui n'a strictement aucun sens dans la logique (bien que ça soit syntaxiquement cohérence.
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
21 déc. 2009 à 11:05
21 déc. 2009 à 11:05
Bonjour,
Je peux me tromper, mais est-ce correct d'utiliser le switch case comme ca ? C'est a dire, de tester une condition d'égalité dans le case ?
Peut-être qu'en remplaçant par des if else, ce sera mieux ?
Je peux me tromper, mais est-ce correct d'utiliser le switch case comme ca ? C'est a dire, de tester une condition d'égalité dans le case ?
Peut-être qu'en remplaçant par des if else, ce sera mieux ?
biboo_
Messages postés
1249
Date d'inscription
jeudi 20 août 2009
Statut
Membre
Dernière intervention
14 mars 2012
106
21 déc. 2009 à 11:17
21 déc. 2009 à 11:17
Bonjour,
D'accord avec Mopra-L, l'utilisation du case est pas type top. :/
Le If/Else serait mieux.
D'accord avec Mopra-L, l'utilisation du case est pas type top. :/
Le If/Else serait mieux.
djflexlive
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
95
21 déc. 2009 à 11:52
21 déc. 2009 à 11:52
En effet avec des if, ca passe sans problèmes. Merci à vous trois.
A part pour l'explication donné par "le père" ; pourquoi l'utilisation du switch n'était pas bonne ? Trop simple comme conditions pour utiliser le switch ?
A part pour l'explication donné par "le père" ; pourquoi l'utilisation du switch n'était pas bonne ? Trop simple comme conditions pour utiliser le switch ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
djflexlive
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
95
21 déc. 2009 à 12:22
21 déc. 2009 à 12:22
Ok bon à savoir ;)
Merci bien.
Merci bien.