Rumah > pembangunan bahagian belakang > tutorial php > Bolehkah Tatasusunan PHP Menggunakan Rentetan Berangka sebagai Kekunci Tanpa Penukaran Integer?

Bolehkah Tatasusunan PHP Menggunakan Rentetan Berangka sebagai Kekunci Tanpa Penukaran Integer?

Barbara Streisand
Lepaskan: 2024-12-02 09:55:12
asal
868 orang telah melayarinya

Can PHP Arrays Use Numeric Strings as Keys Without Integer Conversion?

Menetapkan Kunci Integer Rentetan dalam Tatasusunan PHP

Menggunakan tatasusunan PHP biasanya melibatkan pemberian nilai kepada kunci yang sama ada rentetan atau integer. Walau bagaimanapun, persoalan timbul: Bolehkah kita menggunakan rentetan angka sebagai kunci tatasusunan tanpa PHP menukarnya kepada integer? Pertimbangkan contoh berikut:

$blah = array('123' => 1);
var_dump($blah);
Salin selepas log masuk

Di sini, anda mungkin menjangkakan outputnya ialah:

array(1) {
  ["123"]=>
  int(1)
}
Salin selepas log masuk

Dengan kekunci '123' diwakili sebagai rentetan. Walau bagaimanapun, output sebenar ialah:

array(1) {
  [123]=>
  int(1)
}
Salin selepas log masuk

Ini menunjukkan bahawa rentetan angka '123' telah ditukar kepada kunci integer 123.

Mengapa PHP Tidak Membenarkan Numeric Kunci Rentetan?

Menurut PHP manual:

Kekunci mungkin sama ada integer atau rentetan. Jika kunci ialah perwakilan standard bagi integer, ia akan ditafsirkan sedemikian (iaitu "8" akan ditafsirkan sebagai 8, manakala "08" akan ditafsirkan sebagai "08").

Ini bermakna bahawa PHP mentafsir sebarang rentetan berangka sebagai integer, walaupun anda memetiknya sebagai rentetan.

Tambahan: Perbandingan kepada Kekunci Objek JavaScript

Tingkah laku ini dalam PHP adalah serupa tetapi tidak sama dengan kunci objek JavaScript. Dalam JavaScript, anda boleh menggunakan rentetan angka sebagai kunci objek dan ia akan mengekalkan bentuk rentetannya:

foo = { '10' : 'bar' };

foo['10']; // "bar"
foo[10]; // "bar"
foo[012]; // "bar"
foo['012']; // undefined!
Salin selepas log masuk

Dalam contoh ini, '10' digunakan sebagai kunci rentetan, manakala 10 dan 012 ditafsirkan kedua-duanya sebagai integer. Walau bagaimanapun, '012' sebagai rentetan yang dipetik dianggap sebagai tidak ditentukan, tidak seperti dalam PHP di mana ia akan ditafsirkan sebagai rentetan "012".

Atas ialah kandungan terperinci Bolehkah Tatasusunan PHP Menggunakan Rentetan Berangka sebagai Kekunci Tanpa Penukaran Integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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