Maison >développement back-end >tutoriel php >Pourquoi les tableaux PHP avec les clés 07 et 08 présentent-ils un comportement inattendu ?
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!