Heim > Backend-Entwicklung > PHP-Tutorial > Warum verschwinden die Schlüssel-Wert-Paare 07 und 08 in PHP-Arrays?

Warum verschwinden die Schlüssel-Wert-Paare 07 und 08 in PHP-Arrays?

DDD
Freigeben: 2024-10-20 19:33:30
Original
645 Leute haben es durchsucht

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

PHP-Array-Rätsel: Das Geheimnis der Schlüssel-Wert-Paare 07 und 08 lüften

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>
Nach dem Login kopieren

Diese Besonderheit wird besonders deutlich, wenn Sie Array-Schlüssel festlegen:

<code class="php">$months['07'] = 'July';</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage