Rumah >pembangunan bahagian belakang >masalah PHP >Tidak bolehkah pembolehubah digunakan untuk subskrip tatasusunan php?

Tidak bolehkah pembolehubah digunakan untuk subskrip tatasusunan php?

PHPz
PHPzasal
2023-04-12 09:17:38756semak imbas

Dalam PHP, subskrip tatasusunan biasa mestilah rentetan atau nombor yang ditakrifkan tetap dan tidak boleh menjadi pembolehubah.

Sebagai contoh, kod berikut tidak betul:

$index = 'name';
$array = [];
$array[$index] = 'John';

Dalam contoh di atas, ralat "Indeks tidak ditentukan" akan digesa kerana indeks yang dinamakan tidak wujud dalam tatasusunan $array Subskrip $index.

Cara untuk menyelesaikan masalah ini adalah dengan menggunakan pembolehubah sebagai nilai subskrip melalui {}. Contohnya:

$index = 'name';
$array = [];
$array[$index] = 'John';
$array2 = [];
$array2["{$index}"] = 'John';

Kod di atas akan berfungsi dengan baik, kedua-duanya akan menggunakan 'John' sebagai nilai subskrip $array dalam tatasusunan $array2 dan "name".

Selain kaedah di atas, terdapat cara lain untuk menggunakan pembolehubah sebagai subskrip, iaitu menggunakan variable variable, dengan menggunakan nama pembolehubah sebagai nilai pembolehubah lain dan menambah simbol $ sebelum nama pembolehubah. Contohnya:

$index = 'name';
$$index = 'John';
echo $name;

Dalam kod di atas, takrifan dan penggunaan pembolehubah dinamik dilaksanakan. $$index boleh dilihat sebagai bentuk singkatan $name, ia akan ditetapkan sebagai 'John' dan echo $name akan mengeluarkan 'John'.

Walaupun variable variable boleh menjadikan program lebih dinamik, ia juga boleh menyukarkan kod untuk difahami dan diselenggara, jadi ia harus digunakan dengan berhati-hati.

Ringkasnya, subskrip tatasusunan dalam PHP tidak boleh menggunakan pembolehubah dan pembolehubah boleh digunakan sebagai nilai subskrip melalui {} atau variable variable.

Atas ialah kandungan terperinci Tidak bolehkah pembolehubah digunakan untuk 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