Pembolehubah Rujukan dalam PHP Foreach
Dalam kod yang diberikan, isu timbul kerana penggunaan pembolehubah rujukan dalam gelung foreach pertama. Berikut ialah penjelasan:
$a = ['zero', 'one', 'two', 'three']; foreach ($a as &$v) { // $v is a reference to the current array element } foreach ($a as $v) { echo $v . PHP_EOL; }
Dalam PHP, pembolehubah boleh menjadi pembolehubah biasa atau rujukan. Pembolehubah biasa memegang nilai data, manakala pembolehubah rujukan menunjuk ke lokasi data.
Dalam gelung pertama, kita mempunyai $v = &$a[0]; oleh itu, $v menjadi rujukan kepada elemen pertama tatasusunan, 'sifar'. Ini bermakna sebarang pengubahsuaian kepada $v akan ditunjukkan dalam $a[0], dan sebaliknya.
Kini, dalam gelung kedua, kita mempunyai $v = 'dua'. Memandangkan $v ialah pembolehubah rujukan, operasi ini turut mengubah suai elemen yang sepadan dalam tatasusunan, $a[3].
Akhir sekali, dalam gelung foreach kedua, apabila kita mengulangi setiap elemen, kita melihat output :
Ini menunjukkan kesan penggunaan pembolehubah rujukan dalam gelung foreach, yang membawa kepada pengulangan nilai terakhir dikemas kini dalam gelung pertama.
Atas ialah kandungan terperinci Apa yang Berlaku Apabila Menggunakan Pembolehubah Rujukan dalam Gelung Foreach PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!