|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Salut
Quelqu'un peut m'expliquer un truc la.... $toto=0; if($toto=='quitter'){ echo "123"; } Pourquoi ca m'affiche 123... ? |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Analyste - Programmeur Inscription : mai 2006 Messages : 712 ![]() |
Fais un echo $toto; avant ton if voir si il a bien pris le 0 et test en mettant $toto=1;
__________________
Aucune aide par MP, utilisez le forum. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 4 ![]() |
Je suppose que la raison est que tu compare un entier à une chaine
essais: if (Integer.toString($toto)=='quitter' |
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() |
déjà tu mets un chiffre pour ta variable donc elle est de type int.
Ensuite si le code ci dessous... Code :
En tout cas, je ne voudrais pas reprendre un projet derrière toi. En quatre lignes tu définis une variable en int que tu testes ensuite en string avec des guillemets simples et si la condition est juste, tu affiches un string avec des guillemets doubles. Aucune rigueur... Donc pour ta question, tu écris $toto=""; au lieu de $toto=0; et ça fonctionnera. |
||
|
|
00
|
|
|
#5 | ||||||
|
Invité régulier
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Citation:
bref tu me dis de remplacer $toto=0; par $toto=""; Ce qui est complétement différent. Dans mon problème $toto doit valoir la valeur 0. Imaginons que $toto est récupéré d'une autre page il peut etre int ou str, et dans ce cas il vaut 0. je fais alors mon test Code :
Ps : Citation:
|
||||||
|
|
00
|
|
|
#6 | ||
|
Membre chevronné
![]() |
Cela fonctionne en mettant $toto==1 pour la simple et bonne raison que la variable reste du même type (int).
Si tu veux absolument utiliser le 0 il faut que tu le mettes en type chaîne donc tu fais: Code :
|
||
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Je sais pas si c'est ce que tu veux mais tu peux essayer avec un triple égal, comme ça il compare le type de données en plus du contenu.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Analyste - Programmeur Inscription : mai 2006 Messages : 712 ![]() |
ou $toto='0' $toto=''+0 etc ..
__________________
Aucune aide par MP, utilisez le forum. |
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() |
Tu dis que la variable $toto est récupéré d'une autre page alors que là, tu prends un exemple avec $toto déclarée en local. Ce qui n'a rien à voir. Car si par exemple tu récupère $toto d'un formulaire même s'il vaut 0 par le passage ($_POST ou $_GET) il sera transformé en string. Ton problème n'a docn plus lieu.
|
|
|
00
|
|
|
#10 | ||
|
Membre éclairé
![]() bioinfo Inscription : mai 2003 Messages : 385 ![]() |
Bonjour,
Ton probleme vient bien de la valeur 0 attribuée a $toto, qui dans ce contexte vaut... faux. Tu n'aurais pas ce probleme avec $toto=1. Tu as donc $toto ne vaut pas quitter (faux), or $toto=faux, donc l'egalité est respectée... Pour pallier a ce probleme on utilise l'egalite stricte === ce qui donne : Code :
Une subtilité du PHP et surement d'autres langages. Sohnic
__________________
http://www.noctinfo.fr/ (\ _ /) (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant. (")-(") |
||
|
|
00
|
|
|
#11 | |||
|
Invité régulier
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Citation:
Merci pour ton explication sohnic je comprends mieu Merci quand meme zyongh je m'étais surement mal exprimé mais j'attendais surtout une explication de pourquoi je rentres dans ma boucle et par pourquoi faut pas le faire ou le faire autrement |
|||
|
|
00
|
|
|
#12 |
|
Membre chevronné
![]() |
Le principal est que quelqu'un ait pu apporter une solution à ton problème.
C'est tout l'intérêt des forums dans la mentalité de respect de developpez.com |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com