gvosnet Posted April 24, 2008 Share Posted April 24, 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. Link to comment Share on other sites More sharing options...
BreizFenrir Posted April 24, 2008 Share Posted April 24, 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. Link to comment Share on other sites More sharing options...
gvosnet Posted April 26, 2008 Author Share Posted April 26, 2008 Impec ! Merci beaucoup pour l'explication ! J'avais pas réussi à trouver ça sur le net. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.