gvosnet Posté(e) le 24 avril 2008 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.
BreizFenrir Posté(e) le 24 avril 2008 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.
gvosnet Posté(e) le 26 avril 2008 Auteur Posté(e) le 26 avril 2008 Impec ! Merci beaucoup pour l'explication ! J'avais pas réussi à trouver ça sur le net.
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.