Dalam PHP, cara parameter dihantar ke fungsi menentukan cara fungsi mengakses pembolehubah. Melepasi nilai mencipta salinan pembolehubah, manakala lulus melalui rujukan beroperasi terus pada pembolehubah asal. PHP 8 memperkenalkan pembayang jenis rujukan, membenarkan parameter yang diluluskan oleh rujukan dinyatakan secara eksplisit. Nilai lulus sesuai untuk fungsi yang tidak mengubah nilai asal, manakala rujukan lulus sesuai untuk fungsi yang perlu mengubah suai nilai asal.
Hubungan antara kaedah lulus parameter fungsi PHP dan pembolehubah rujukan
Dalam PHP, kaedah lulus parameter fungsi menentukan cara fungsi mengakses pembolehubah yang dihantar kepadanya. Terdapat dua cara utama untuk menghantar parameter: laluan mengikut nilai dan laluan melalui rujukan.
Pass by value
Apabila pembolehubah dihantar ke fungsi mengikut nilai, salinan pembolehubah dicipta dan dihantar ke fungsi. Ini bermakna fungsi tersebut beroperasi pada salinan pembolehubah, dan sebarang perubahan yang dibuat pada salinan tidak akan menjejaskan pembolehubah asal.
function add_one($num) { $num++; // 对副本进行更改 } $x = 10; add_one($x); // 传递变量副本 echo $x; // 输出 10(原始变量保持不变)
Lulus melalui rujukan
Apabila pembolehubah dihantar ke fungsi sebagai rujukan melalui, fungsi itu beroperasi terus pada pembolehubah asal. Sebarang perubahan yang dibuat kepada pembolehubah dalam fungsi dicerminkan dalam pembolehubah asal.
function add_one(&$num) { $num++; // 对原始变量进行更改 } $x = 10; add_one($x); // 传递变量引用 echo $x; // 输出 11(原始变量被修改了)
Dalam contoh di atas, fungsi add_one()
melepasi parameternya $num
sebagai rujukan. Apabila fungsi menambah $num
, ia secara langsung mengubah suai pembolehubah asal $x
. add_one()
函数通过引用传递其参数 $num
。当函数将 $num
递增时,它直接修改了原始变量 $x
。
引用变量的类型提示
PHP 8 引入了引用类型提示,允许明确指定要按引用传递的函数参数。使用 &
前缀表示该参数应按引用传递。
function add_one(int &$num) { $num++; }
现在,将 $num
传递给 add_one()
函数时,它必须是按引用传递的。如果不按引用传递,则会出现错误。
实战案例
以下是对 按值传递
和 按引用传递
的实战案例:
按值传递:
sort()
或 trim()
PHP 8 memperkenalkan pembayang jenis rujukan, membolehkan parameter fungsi diluluskan melalui rujukan dinyatakan secara eksplisit. Menggunakan awalan &
menunjukkan bahawa parameter harus dihantar melalui rujukan.
$num
ke fungsi add_one()
, ia mesti dihantar melalui rujukan. Jika anda tidak lulus dengan rujukan, anda akan mendapat ralat. sort()
atau trim()
, jangan ubah suai tatasusunan atau rentetan asal. 🎜🎜🎜🎜Lulus melalui rujukan: 🎜🎜🎜🎜Fungsi yang mengemas kini kandungan rekod pangkalan data atau sistem fail, yang memerlukan manipulasi langsung pembolehubah asal. 🎜🎜Atas ialah kandungan terperinci Apakah hubungan antara kaedah lulus parameter fungsi PHP dan pembolehubah rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!