Kaedah lulus pembolehubah dalam fungsi PHP: Lulus nilai: Fungsi menerima salinan nilai pembolehubah, dan pengubahsuaian pada salinan tidak akan menjejaskan pembolehubah asal. Melewati rujukan: Dengan menggunakan simbol &, anda boleh lulus melalui rujukan, dan fungsi boleh mengubah suai secara langsung nilai pembolehubah asal.
Fungsi PHP dan Rujukan Pembolehubah
Dalam PHP, apabila menghantar pembolehubah sebagai parameter fungsi, anda perlu tahu cara mengendalikan rujukan pembolehubah. Rujukan pembolehubah dibahagikan kepada dua jenis: lulus mengikut nilai dan lulus dengan rujukan.
Pass by value
Secara lalai, PHP menggunakan pass by value, yang bermaksud fungsi tersebut akan menerima salinan nilai pembolehubah. Sebarang pengubahsuaian pada salinan ini tidak akan menjejaskan nilai pembolehubah asal.
function test1($a) { $a += 10; // 修改副本的值 } $a = 10; test1($a); echo $a; // 输出 10,原始值不受影响
Lulus dengan rujukan
Lulus rujukan boleh dicapai dengan menghantar rujukan berubah menggunakan notasi &. Ini akan membolehkan fungsi mengubah suai secara langsung nilai pembolehubah asal.
function test2(&$a) { $a += 10; // 修改原始变量的值 } $a = 10; test2($a); echo $a; // 输出 20,原始值被修改
Contoh Praktikal
Pertimbangkan fungsi swap()
yang menukar nilai dua pembolehubah:
function swapByValue($a, $b) { // 值传递,交换副本的值 $temp = $a; $a = $b; $b = $temp; } function swapByReference(&$a, &$b) { // 引用传递,直接交换原始变量的值 list($a, $b) = [$b, $a]; } $x = 10; $y = 20; swapByValue($x, $y); echo "x = $x, y = $y\n"; // x = 10, y = 20 swapByReference($x, $y); echo "x = $x, y = $y\n"; // x = 20, y = 10
Dalam contoh pertama, menukar menggunakan nilai lulus tidak berfungsi kerana mengubah suai nilai salinan tidak mempunyai kesan asal pembolehubah. Dalam contoh kedua, lulus melalui rujukan digunakan untuk melaksanakan pertukaran, dengan itu berjaya mengubah suai nilai pembolehubah asal.
Atas ialah kandungan terperinci Bagaimanakah fungsi PHP mengendalikan rujukan berubah-ubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!