Dalam bidang tatasusunan PHP, anomali pelik timbul apabila berurusan dengan nilai-kunci pasangan 07 dan 08. Walaupun menetapkan nilai untuk kunci ini, kehadirannya tetap sukar difahami dalam output tatasusunan. Mengelirukan, mengalih keluar sifar di hadapan daripada kekunci secara ajaib menyelesaikan isu ini. Mari kita mendalami alasan di sebalik tingkah laku ingin tahu ini.
PHP, mengikut reka bentuk, mentafsir nombor yang diawali dengan sifar sebagai nilai perlapanan. Ini berlaku untuk kedua-dua nombor perpuluhan dan heksadesimal. Apabila anda menggunakan 07 atau 08 sebagai kunci tatasusunan, PHP mentafsirkannya sebagai nombor perlapanan (masing-masing 7 dan 8), bukan integer perpuluhan (7 dan 8).
Sebagai contoh:
<code class="php">echo 07; // prints 7 echo 010; // prints 8</code>
Keanehan ini menjadi jelas terutamanya apabila menetapkan kekunci tatasusunan:
<code class="php">$months['07'] = 'July';</code>
PHP mentafsir '07' sebagai nilai perlapanan, dengan berkesan memperuntukkan bulan Julai kepada kunci 7. Walau bagaimanapun, memandangkan nilai perlapanan tidak boleh melebihi 7, kunci sebenar 8 diabaikan dengan berkesan dan nilai yang diberikan kepadanya (Ogos) hilang.
Penyelesaian terletak pada mengalih keluar sifar pendahuluan daripada kekunci:
<code class="php">$months['7'] = 'July'; $months['8'] = 'August';</code>
Dengan menghapuskan sifar pendahuluan , PHP mengiktiraf nombor sebagai integer perpuluhan, memberikan nilai dengan betul kepada kekunci 7 dan 8.
Tingkah laku ini juga didokumenkan dalam Manual PHP, dengan jelas menyatakan bahawa menambahkan 0 kepada nombor menyebabkan ia ditafsirkan sebagai nilai perlapanan.
Memahami kelainan berangka ini adalah penting untuk mengelakkan anomali sedemikian dalam pengendalian tatasusunan. Dengan mematuhi konvensyen integer perpuluhan dan mengelak daripada menggunakan sifar pendahuluan dalam kekunci, anda boleh memastikan gelagat tatasusunan PHP yang dijangkakan.
Atas ialah kandungan terperinci Mengapa Pasangan Nilai-Kekunci 07 dan 08 Lenyap dalam Tatasusunan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!