Heim  >  Artikel  >  Backend-Entwicklung  >  Warum zeigen PHP-Arrays mit den Schlüsseln 07 und 08 unerwartetes Verhalten?

Warum zeigen PHP-Arrays mit den Schlüsseln 07 und 08 unerwartetes Verhalten?

Susan Sarandon
Susan SarandonOriginal
2024-10-20 19:34:02980Durchsuche

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

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!

Stellungnahme:
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