Maison >développement back-end >tutoriel php >Anomalies de valeur-clé du tableau PHP : comprendre le cas curieux de 07 et 08
Problème de valeur de clé de tableau PHP avec 07 et 08
Un tableau contient divers éléments avec des clés associées. En PHP, un problème inhabituel survient lorsque les clés contiennent des valeurs numériques telles que 07 ou 08.
Dans le tableau de mois donné, les valeurs clés 07 et 08 présentent un comportement déroutant. L'exécution de print_r($months) renvoie des résultats inattendus : la clé "07" est manquante et la clé "08" est affectée à la valeur de septembre.
Ce problème provient de l'interprétation par PHP des zéros non significatifs. Lorsqu'un nombre est préfixé par 0 (par exemple, 07 ou 08), PHP l'interprète comme une valeur octale (base 8) plutôt que comme une valeur décimale.
Explication :
<br>echo 07; // imprime 7 (octal 07 = décimal 7)<br>echo 010 ; // imprime 8 (octal 010 = décimal 8)<br>
Dans le tableau, les clés "07" et "08" sont traitées comme des valeurs octales au lieu de mois décimaux. Cela conduit à des résultats inattendus, où la clé « 07 » est interprétée comme « Mois 0 », tandis que la clé « 08 » correspond au « Mois 8 », ce qui dépasse la plage réelle des mois.
Résolution :
Pour résoudre ce problème, supprimez simplement le zéro non significatif des clés problématiques, en les convertissant en valeurs décimales :
<br>$months[7] = 'July';<br>$months[8] = 'August';<br>
En éliminant les zéros, PHP reconnaîtra correctement ces valeurs comme des clés décimales représentant les mois respectifs.
Il est important de prendre en compte ce comportement lorsque vous travaillez avec des touches numériques dans des tableaux PHP afin d'éviter des conflits potentiels ou des résultats inattendus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!