Maison  >  Article  >  développement back-end  >  Pourquoi les tableaux PHP avec les clés 07 et 08 présentent-ils un comportement inattendu ?

Pourquoi les tableaux PHP avec les clés 07 et 08 présentent-ils un comportement inattendu ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 19:34:02980parcourir

Why Do PHP Arrays with Keys 07 and 08 Exhibit Unexpected Behavior?

Anomalies de tableau PHP avec les clés 07 et 08

Rencontre d'un comportement de tableau inhabituel avec les clés 07 et 08 dans un tableau PHP défini comme suit :

<code class="php">$months[01] = 'January';
$months[02] = 'February';</code>

Lors de la tentative d'impression du tableau à l'aide de print_r($months), les clés 07 et 08 sont manquantes et September apparaît avec une clé de 0 à la place.

Raison et solution

L'irrégularité survient parce que les touches numériques commençant par 0 sont interprétées comme des valeurs octales en PHP. Cela signifie que 07 est analysé comme l'entier 7 et 08 est analysé comme 8. Pour éviter ce problème, supprimez simplement les 0 en tête des clés.

<code class="php">$months[7] = 'July';
$months[8] = 'August';</code>

Cela garantira que les clés sont correctement reconnues. et le tableau se comporte comme prévu.

Exemple

Le code suivant montre la différence entre l'utilisation de 0 non significatifs et non :

<code class="php">echo 07; // prints 7
echo 010; // prints 8
echo 7; // prints 7
echo 10; // prints 10</code>

Notes supplémentaires

Ce comportement est couramment utilisé lors de la spécification des autorisations de fichiers UNIX :

<code class="php">chmod("myfile", 0660);</code>

Cependant, il est rarement nécessaire à d'autres fins. Le manuel PHP fournit plus de détails sur les clés numériques et les valeurs octales.

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!

Déclaration:
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