Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa tiada 5 dalam subskrip tatasusunan php?

Mengapa tiada 5 dalam subskrip tatasusunan php?

PHPz
PHPzasal
2023-04-25 09:05:10487semak imbas

Dalam PHP, tatasusunan ialah himpunan data tersusun, terdiri daripada satu atau lebih pasangan nilai kunci dan subskrip pasangan nilai kunci digunakan sebagai indeks tatasusunan. Dalam tatasusunan, setiap elemen mempunyai indeks unik dan indeks unik boleh berupa nilai berangka, rentetan atau jenis lain.

Walau bagaimanapun, kami sering menghadapi masalah sedemikian: Mengapa tatasusunan PHP tidak mempunyai subskrip 5?

Sebenarnya, terdapat subskrip 5 dalam tatasusunan PHP, tetapi dalam beberapa kes ia mungkin diabaikan atau ditimpa oleh subskrip lain.

Sebabnya adalah seperti berikut:

1 Subskrip permulaan bermula dari 0

Dalam PHP, subskrip permulaan tatasusunan bermula dari 0, bukan dari 1 permulaan. Oleh itu, apabila kita mengisytiharkan tatasusunan, indeks elemen pertama tatasusunan ialah 0, bukan 1. Inilah sebabnya kita sering melihat pengaturcara PHP menggunakan $my_array[0] untuk mewakili elemen pertama tatasusunan.

2. Penukaran jenis automatik

PHP ialah bahasa ditaip secara dinamik yang menukar jenis pembolehubah secara automatik. Ini bermakna apabila kita menggunakan subskrip rentetan bukan angka sebagai indeks tatasusunan, PHP akan menukarnya secara automatik kepada jenis integer. Contohnya, kod berikut:

$my_array["hello"] = "world";

echo $my_array["hello"]; //output "world"

echo $my_array[0]; //Output "world"

Di sini, kami menggunakan rentetan "hello" sebagai subskrip tatasusunan, tetapi rentetan ini tidak mempunyai nilai, jadi PHP menukarnya kepada 0 , jadi $my_array[0] akan mengeluarkan "world".

3. Subskrip lain mungkin meliputi 5

Sebab lain ialah dalam beberapa kes, subskrip lain bagi tatasusunan mungkin meliputi 5 subskrip. Contohnya, dalam kod berikut:

$my_array = array(0, 1, 2, 3, 4, "five" => 5, 6);

echo $my_array[ 5]; //Output ""

Di sini, kami menetapkan nilai elemen dengan subskrip "lima" kepada 5. Memandangkan "lima" bukan subskrip angka, indeksnya dalam tatasusunan adalah bersekutu, bukan angka. Oleh itu, dalam tatasusunan ini, indeks 5 sudah diduduki oleh indeks "lima" yang berkaitan, jadi $my_array[5] akan mengeluarkan rentetan kosong.

Ringkasan:

Dalam PHP, tatasusunan boleh mempunyai sebarang indeks, termasuk jenis angka, rentetan, bersekutu dan lain-lain. Subskrip tatasusunan mula dikira dari 0, dan PHP akan melakukan penukaran jenis secara automatik, jadi kami boleh menggunakan rentetan, nombor titik terapung dan jenis lain sebagai indeks tatasusunan. Pada masa yang sama, dalam tatasusunan, berbilang elemen boleh berkongsi subskrip yang sama, seperti tatasusunan bersekutu. Oleh itu, walaupun tiada unsur pada indeks tatasusunan 5, kita boleh mengakses elemen pada kedudukan ini melalui kaedah lain.

Atas ialah kandungan terperinci Mengapa tiada 5 dalam subskrip tatasusunan php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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