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

Susan Sarandon
Lepaskan: 2024-10-20 19:34:02
asal
976 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Nota Tambahan

Tingkah laku ini biasanya digunakan apabila menentukan kebenaran fail UNIX:

<code class="php">chmod("myfile", 0660);</code>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!