Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Tatasusunan PHP dengan Kekunci 07 dan 08 Mempamerkan Gelagat Tidak Dijangka?

Mengapa Tatasusunan PHP dengan Kekunci 07 dan 08 Mempamerkan Gelagat Tidak Dijangka?

Susan Sarandon
Susan Sarandonasal
2024-10-20 19:34:02979semak imbas

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

Anomali Tatasusunan PHP dengan Kekunci 07 dan 08

Menghadapi tingkah laku tatasusunan yang luar biasa dengan kunci 07 dan 08 dalam tatasusunan PHP yang ditakrifkan seperti berikut:

<code class="php">$months[01] = 'January';
$months[02] = 'February';</code>

Apabila cuba mencetak tatasusunan menggunakan print_r($months), kekunci 07 dan 08 hilang, dan September muncul dengan kunci 0 sebaliknya.

Sebab dan Penyelesaian

Penyelewengan timbul kerana kekunci angka bermula dengan 0 ditafsirkan sebagai nilai perlapanan dalam PHP. Ini bermakna 07 dihuraikan sebagai integer 7, dan 08 dihuraikan sebagai 8. Untuk mengelakkan masalah ini, cuma keluarkan 0 di hadapan daripada kekunci.

<code class="php">$months[7] = 'July';
$months[8] = 'August';</code>

Ini akan memastikan kekunci itu dikenali dengan betul dan tatasusunan berkelakuan seperti yang diharapkan.

Contoh

Kod berikut menunjukkan perbezaan antara menggunakan 0 pendahuluan dan bukan:

<code class="php">echo 07; // prints 7
echo 010; // prints 8
echo 7; // prints 7
echo 10; // prints 10</code>

Nota Tambahan

Tingkah laku ini biasanya digunakan apabila menentukan kebenaran fail UNIX:

<code class="php">chmod("myfile", 0660);</code>

Walau bagaimanapun, ia jarang diperlukan untuk tujuan lain. Manual PHP menyediakan butiran lanjut tentang kekunci angka dan nilai perlapanan.

Atas ialah kandungan terperinci Mengapa Tatasusunan PHP dengan Kekunci 07 dan 08 Mempamerkan Gelagat Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn