PHP membenarkan penggunaan nilai angka sebagai kunci tatasusunan. Walau bagaimanapun, apabila menggunakan rentetan berangka (cth., "123"), PHP secara automatik menukarnya kepada integer. Tingkah laku ini boleh menjadi masalah jika anda ingin mengekalkan nilai rentetan kunci.
Pertimbangkan kod berikut:
$blah = ['123' => 1]; var_dump($blah);
Output:
array(1) { [123] => int(1) }
Seperti yang anda lihat , kunci "123" telah ditukar kepada integer. Untuk mengelakkan ini, PHP tidak menyokong penggunaan rentetan angka sebagai kunci tatasusunan tanpa penukaran.
Menurut manual PHP:
"Kunci mungkin sama ada integer atau rentetan. Jika kunci ialah perwakilan piawai bagi integer, ia akan ditafsirkan sedemikian (iaitu "8" akan ditafsirkan sebagai 8, manakala "08" akan ditafsirkan sebagai "08"."
Berbeza dengan JavaScript, di mana rentetan angka dan integer boleh digunakan secara bergantian sebagai kunci objek, PHP menganggap rentetan angka sebagai integer apabila digunakan sebagai kunci tatasusunan. Ini boleh membawa kepada hasil yang tidak dijangka, terutamanya apabila bekerja dengan data JSON.
Untuk mengelakkan isu yang berpotensi, anda disyorkan untuk menggunakan hanya rentetan atau integer sebagai kunci tatasusunan dalam PHP. Jika anda perlu menggunakan kedua-dua jenis kekunci, pertimbangkan untuk menggunakan objek dan bukannya tatasusunan.
Atas ialah kandungan terperinci Adakah PHP Melayan Rentetan Berangka sebagai Kekunci Tatasusunan Berbeza Daripada Integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!