Anomali Tatasusunan PHP dengan Nilai Utama 07 dan 08: Meneroka Tafsiran Oktal
Tatasusunan PHP selalunya berkelakuan seperti yang diharapkan, namun fenomena luar biasa timbul apabila bekerja dengan nilai kunci 07 dan 08. Tidak seperti nilai kunci lain, kedua-dua nilai ini tidak dicetak dengan betul menggunakan print_r($months). Sebaliknya, 'Ogos' tiada dan 'September' diberikan kepada kekunci 0.
Tingkah laku yang membingungkan ini berpunca daripada tafsiran unik PHP bagi nombor yang didahului oleh sifar pendahuluan. Khususnya, apabila menemui nombor dengan pendahuluan 0, PHP mentafsirkannya sebagai nilai perlapanan, sama seperti cara nombor didahului oleh 0x ditafsirkan sebagai nilai perenambelasan.
Dalam kes nilai utama 07 dan 08, PHP mentafsir nilai ini sebagai 7 dan 8 dalam sistem perlapanan. Walau bagaimanapun, apabila dicetak, ia ditukar kepada sistem perpuluhan, mengakibatkan peninggalan 'Ogos' (nilai perpuluhan 8) dan penetapan 'September' (nilai perpuluhan 9) kepada kekunci 0.
Untuk mengelakkan kekeliruan ini, adalah dinasihatkan untuk mengalih keluar sifar utama daripada nilai utama. Pengubahsuaian mudah ini memastikan PHP mentafsir nilai dengan betul, menyelesaikan tingkah laku anomali dengan nilai utama 07 dan 08.
Manual PHP menyediakan penjelasan komprehensif tentang topik ini. Dengan mengelakkan sifar pendahuluan dalam nilai utama dan memahami kesan tafsiran perlapanan, pembangun boleh menghalang tingkah laku luar biasa ini dan memastikan manipulasi tatasusunan PHP yang tepat.
Atas ialah kandungan terperinci Mengapa Tatasusunan PHP Mempamerkan Anomali dengan Nilai Utama 07 dan 08?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!