gvosnet Posté(e) le 24 avril 2008 Partager Posté(e) le 24 avril 2008 Hello, Un collègue vient de me soumettre un truc bizarre qu'il a rencontré en PHP. Voici un bout de code d'exemple pour illustrer le problème : <? $test = 08; $t2 = 09; echo "test=".gettype($test)."/".$test."<hr />"; echo "t2=".gettype($t2)."/".$t2."<hr />"; if ($test >= $t2) { echo $test.">=".$t2; } else { echo $test."<".$t2; } ?> PHP me renvoit ça : test=integer/0-------------------------------------------------------------------------------- t2=integer/0 -------------------------------------------------------------------------------- 0>=0 Je n'arrive pas à savoir pour PHP réagit comme ça. C'est normal que les chiffres situés derrière un zéro ne soient pas pris en compte ? Merci d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
BreizFenrir Posté(e) le 24 avril 2008 Partager Posté(e) le 24 avril 2008 Quand tu précèdes un nombre d'un zéro, PHP interprète ça comme de l'octal, à savoir un système de représentation des nombre qui n'utilise que les caractères 0 à 7. De fait : 07 == 7 010 == 8 Mais 08 et 09 sont des choses qui n'ont pas de sens. Il faut donc enlever les 0 qui précèdent pour que ton code marche. Sauf si la représentation est normalement octale, auquel cas '8' et '9' n'ont rien à faire dans le code de ton collègue. Mais je ne pense pas que ça soit le cas. Lien vers le commentaire Partager sur d’autres sites More sharing options...
gvosnet Posté(e) le 26 avril 2008 Auteur Partager Posté(e) le 26 avril 2008 Impec ! Merci beaucoup pour l'explication ! J'avais pas réussi à trouver ça sur le net. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.