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];
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];
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.
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!