Pourquoi les paires clé-valeur 07 et 08 disparaissent-elles dans les tableaux PHP ?

DDD
Libérer: 2024-10-20 19:33:30
original
553 Les gens l'ont consulté

Why Do Key-Value Pairs 07 and 08 Vanish in PHP Arrays?

Puzzle des tableaux PHP : percer le mystère des paires clé-valeur 07 et 08

Dans le domaine des tableaux PHP, une anomalie particulière survient lors du traitement des paires clé-valeur paires 07 et 08. Malgré les valeurs définies pour ces clés, leur présence reste insaisissable dans la sortie du tableau. Curieusement, la suppression des zéros non significatifs des clés résout comme par magie ce problème. Examinons le raisonnement derrière ce comportement curieux.

PHP, de par sa conception, interprète les nombres préfixés par un zéro comme des valeurs octales. Cela est vrai pour les nombres décimaux et hexadécimaux. Lorsque vous utilisez 07 ou 08 comme clés de tableau, PHP les interprète comme des nombres octaux (7 et 8, respectivement), et non comme des entiers décimaux (7 et 8).

Par exemple :

<code class="php">echo 07; // prints 7
echo 010; // prints 8</code>
Copier après la connexion

Cette particularité devient particulièrement évidente lors de la configuration des clés de tableau :

<code class="php">$months['07'] = 'July';</code>
Copier après la connexion

PHP interprète '07' comme une valeur octale, attribuant effectivement le mois de juillet à la clé 7. Cependant, comme les valeurs octales ne peuvent pas dépasser 7, la la vraie clé 8 est effectivement ignorée, et la valeur qui lui est attribuée (août) disparaît.

La solution réside dans la suppression du zéro non significatif des clés :

<code class="php">$months['7'] = 'July';
$months['8'] = 'August';</code>
Copier après la connexion

En éliminant les zéros non significatifs , PHP reconnaît les nombres comme des entiers décimaux, attribuant correctement des valeurs aux clés 7 et 8.

Ce comportement est également documenté dans le manuel PHP, indiquant explicitement que le fait d'ajouter 0 aux nombres les amène à être interprétés comme des valeurs octales.

Comprendre cette bizarrerie numérique est crucial pour éviter de telles anomalies dans la gestion des tableaux. En adhérant aux conventions sur les nombres entiers décimaux et en vous abstenant d'utiliser des zéros non significatifs dans les clés, vous pouvez garantir le comportement attendu des tableaux PHP.

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!