Im Bereich der PHP-Arrays tritt beim Umgang mit Schlüsselwerten eine eigenartige Anomalie auf Paare 07 und 08. Trotz der Festlegung von Werten für diese Schlüssel bleibt ihr Vorhandensein in der Array-Ausgabe schwer zu erkennen. Erstaunlicherweise löst das Entfernen führender Nullen aus den Tasten dieses Problem auf magische Weise. Schauen wir uns die Gründe für dieses merkwürdige Verhalten genauer an.
PHP interpretiert Zahlen, denen eine Null vorangestellt ist, von Natur aus als Oktalwerte. Dies gilt sowohl für Dezimal- als auch für Hexadezimalzahlen. Wenn Sie 07 oder 08 als Array-Schlüssel verwenden, interpretiert PHP sie als Oktalzahlen (7 bzw. 8) und nicht als dezimale Ganzzahlen (7 und 8).
Zum Beispiel:
<code class="php">echo 07; // prints 7 echo 010; // prints 8</code>
Diese Besonderheit wird besonders deutlich, wenn Sie Array-Schlüssel festlegen:
<code class="php">$months['07'] = 'July';</code>
PHP interpretiert „07“ als Oktalwert und weist Schlüssel 7 effektiv den Monat Juli zu. Da Oktalwerte jedoch 7 nicht überschreiten dürfen, ist der Der echte Schlüssel 8 wird praktisch ignoriert und der ihm zugewiesene Wert (August) verschwindet.
Die Lösung besteht darin, die führende Null aus den Schlüsseln zu entfernen:
<code class="php">$months['7'] = 'July'; $months['8'] = 'August';</code>
Durch Eliminieren der führenden Nullen PHP erkennt die Zahlen als dezimale Ganzzahlen und weist den Tasten 7 und 8 korrekt Werte zu.
Dieses Verhalten ist auch im PHP-Handbuch dokumentiert, in dem ausdrücklich darauf hingewiesen wird, dass das Voranstellen von 0 vor Zahlen dazu führt, dass diese als Oktalwerte interpretiert werden.
Das Verständnis dieser numerischen Eigenart ist entscheidend, um solche Anomalien bei der Array-Verarbeitung zu vermeiden. Indem Sie die Dezimal-Ganzzahl-Konventionen einhalten und auf die Verwendung führender Nullen in Schlüsseln verzichten, können Sie das erwartete Verhalten von PHP-Arrays sicherstellen.
Das obige ist der detaillierte Inhalt vonWarum verschwinden die Schlüssel-Wert-Paare 07 und 08 in PHP-Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!