Aller au contenu

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


gvosnet

Messages recommandés

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...