PHP-Array-Anomalien mit den Schlüsseln 07 und 08
Ungewöhnliches Array-Verhalten mit den Schlüsseln 07 und 08 in einem PHP-Array, das wie folgt definiert ist:
<code class="php">$months[01] = 'January'; $months[02] = 'February';</code>
Beim Versuch, das Array mit print_r($months) zu drucken, fehlen die Schlüssel 07 und 08 und September wird stattdessen mit dem Schlüssel 0 angezeigt.
Grund und Lösung
Die Unregelmäßigkeit entsteht, weil numerische Tasten, die mit 0 beginnen, in PHP als Oktalwerte interpretiert werden. Dies bedeutet, dass 07 als Ganzzahl 7 und 08 als 8 geparst wird. Um dieses Problem zu vermeiden, entfernen Sie einfach die führenden Nullen aus den Schlüsseln.
<code class="php">$months[7] = 'July'; $months[8] = 'August';</code>
Dadurch wird sichergestellt, dass die Schlüssel ordnungsgemäß erkannt werden und das Array verhält sich wie erwartet.
Beispiel
Der folgende Code zeigt den Unterschied zwischen der Verwendung führender Nullen und nicht:
<code class="php">echo 07; // prints 7 echo 010; // prints 8 echo 7; // prints 7 echo 10; // prints 10</code>
Zusätzliche Hinweise
Dieses Verhalten wird häufig beim Festlegen von UNIX-Dateiberechtigungen verwendet:
<code class="php">chmod("myfile", 0660);</code>
Für andere Zwecke ist es jedoch selten erforderlich. Weitere Einzelheiten zu Zifferntasten und Oktalwerten finden Sie im PHP-Handbuch.
Das obige ist der detaillierte Inhalt vonWarum zeigen PHP-Arrays mit den Schlüsseln 07 und 08 unerwartetes Verhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!