[PHP] comparaison string vs integer (résolu)

comparaison string vs integer (résolu) [PHP] - PHP - Programmation

Marsh Posté le 01-03-2007 à 16:03:08    

Bonjour,  
 
Bon c'est un peu con de faire un sujet pour ça, mais bon comme il y a rien de général et que j'ai pas trouvé de réponse dans les topics déjà crées...
Bref, c'est tout con, mais j'aimrais avoir une explication du pourquoi du commant.  
 
 


$valeur = "1df";
$valeur2 = 1;
 
if ($valeur == $valeur2) {
 echo "c'est égale.";
 
}else {
 echo "c'est pas égale";
}


(j'ai pas mis dans les balise code, je trouve trop petit :o)
 
ça me donne "c'est égale". Bon alors je voudrais savoir pourquoi il ne s'en tien qu'au premier caractère, et je voudrais savoir qu'elle est la meilleur façon de solutionner le probème (à part transformer valeur2 en string [:joce])


Message édité par Rio Grande le 01-03-2007 à 19:46:49

---------------
Topics : NFSU2 - NFS : Most Wanted - Volant PC Site :  NFS-Mania.com
Reply

Marsh Posté le 01-03-2007 à 16:03:08   

Reply

Marsh Posté le 01-03-2007 à 17:01:31    

chez moi ça donne "c'est pas égale"...

Reply

Marsh Posté le 01-03-2007 à 17:23:13    

c'est peut-être mon WAMP qui déconne ?  
 
Edit: j'ai la version 1.6.6, mais bon ça serait bizarre :heink:
 
Edit2: au temps pour moins il y avait 3 = il faut tester avec 2 et là tu devrais avoir la même chose que moi ;)


Message édité par Rio Grande le 01-03-2007 à 17:29:17

---------------
Topics : NFSU2 - NFS : Most Wanted - Volant PC Site :  NFS-Mania.com
Reply

Marsh Posté le 01-03-2007 à 19:23:04    

Citation :


Lorsqu'une chaîne de caractères est évaluée comme une valeur numérique, le résultat et le type de la variable sont déterminés comme suit.  
 
La chaîne de caractères est de type "double" si elle contient un des caractères '.', 'e' ou 'E'. Sinon, elle est de type entier ("integer" ).  
 
La valeur est définie par la première partie de la chaîne. Si la chaîne de caractères débute par une valeur numérique cette valeur sera celle utilisée. Sinon, la valeur sera égale à 0 (zéro). Les données numériques valides ont un signe optionnel, suivies par un ou plusieurs digits (optionnellement, contenant un point de décimal), suivies par un exponentiel optionnel. L'exponentiel peut être un 'e' ou un 'E' suivi par un ou plusieurs digits.  


 
http://fr.php.net/manual/fr/langua [...] conversion


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-03-2007 à 19:45:28    

ok merci :jap:
donc c'est normal :p
 
Bon bon j'ai remplacer mes données de comparaison par des strings comme ça j'ai plus de problème. Enfin bon php à vouloir tout transformer lui même, on oubli parfois qu'on peut pas faire n'import quoi non plus :whistle:


---------------
Topics : NFSU2 - NFS : Most Wanted - Volant PC Site :  NFS-Mania.com
Reply

Marsh Posté le 01-03-2007 à 19:51:44    

Sinon t'as === qui compare valeur *et* type. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-03-2007 à 19:56:26    

ouais, mais bon truc c'était pour la vérification d'un formulaire, j'avais une liste de nombre possible pour une date (de 1 à 31 par exemple). Le truc c'est que si qqn modifi le formulaire et qu'il entre une valeur du type que j'ai mis en haut; ça passait. Donc je suis obliger de fait un liste de string de 1 à 31 et de faire une comparaison de string.


---------------
Topics : NFSU2 - NFS : Most Wanted - Volant PC Site :  NFS-Mania.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed