Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Saya Tidak Boleh Mengakses Nilai Tatasusunan Menggunakan Ungkapan dalam PHP?

Mengapa Saya Tidak Boleh Mengakses Nilai Tatasusunan Menggunakan Ungkapan dalam PHP?

DDD
Lepaskan: 2024-11-24 00:30:10
asal
456 orang telah melayarinya

Why Can't I Access Array Values Using Expressions in PHP?

Akses Tatasusunan Dinamik dalam PHP [Asal: Nilai Tatasusunan Akses on the Fly]

PHP menyediakan keupayaan untuk mengakses nilai tatasusunan menggunakan tatatanda kurungan ([]). Walau bagaimanapun, titik kesakitan yang biasa ialah ketidakupayaan untuk mencapai ini secara langsung apabila bekerja dengan ungkapan.

Masalah:

Dalam contoh berikut, cuba mengakses nilai tatasusunan menggunakan ungkapan dalam notasi kurungan menghasilkan a ralat:

echo array('a', 'b', 'c')[$key];
Salin selepas log masuk

Penyelesaian:

Sebab ralat ini adalah pengehadan dalam tatabahasa PHP. Notasi subskrip hanya sah untuk ungkapan pembolehubah, bukan ungkapan umum. Untuk mengatasinya, anda boleh menggunakan pembolehubah perantara:

$variable = array('a', 'b', 'c');
echo $variable[$key];
Salin selepas log masuk

Penjelasan Teknikal:

Tatabahasa PHP tidak membenarkan tatatanda subskrip pada ungkapan. Ini bermakna anda tidak boleh menggunakannya pada hasil panggilan fungsi, kurungan atau ungkapan lain. Tingkah laku ini berbeza daripada bahasa lain yang boleh menyelesaikan subskrip terhadap ungkapan.

Contoh Tambahan Subskrip Tidak Sah:

$x = array(1, 2, 3);
print ($x)[1]; // Invalid: Subscripted expression is a parenthetical expression.

function ret($foo) { return $foo; }
echo ret($x)[1]; // Invalid: Subscripted expression is a call expression.
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengakses Nilai Tatasusunan Menggunakan Ungkapan dalam PHP?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan