Rumah > pembangunan bahagian belakang > tutorial php > Apa yang Berlaku Apabila Menggunakan Pembolehubah Rujukan dalam Gelung Foreach PHP?

Apa yang Berlaku Apabila Menggunakan Pembolehubah Rujukan dalam Gelung Foreach PHP?

Linda Hamilton
Lepaskan: 2024-12-13 22:32:14
asal
848 orang telah melayarinya

What Happens When Using Reference Variables in a PHP Foreach Loop?

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;
}
Salin selepas log masuk

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 :

  • 'sifar' - 'dua' (Elemen 0 masih 'sifar', tetapi $a[3] kini 'dua')
  • 'satu' - 'dua' (Elemen 1 kekal 'satu', tetapi $a[3] masih 'dua')
  • 'dua' - 'dua' (Elemen 2 dikemas kini kepada 'dua' dan $a[3] juga 'dua')
  • 'dua' - 'dua' (Elemen 3 sudah menjadi 'dua', dan $a[3] kekal 'dua')

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan