Jump to content

[résolu] [PHP] Truc bizarre pour initialisation


Recommended Posts

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

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...