Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah hubungan antara kaedah lulus parameter fungsi PHP dan pembolehubah rujukan?

Apakah hubungan antara kaedah lulus parameter fungsi PHP dan pembolehubah rujukan?

WBOY
WBOYasal
2024-04-15 10:03:02666semak imbas

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.

PHP 函数的参数传递方式与引用变量之间的关系?

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()
Petua jenis untuk pembolehubah rujukan

PHP 8 memperkenalkan pembayang jenis rujukan, membolehkan parameter fungsi diluluskan melalui rujukan dinyatakan secara eksplisit. Menggunakan awalan & menunjukkan bahawa parameter harus dihantar melalui rujukan.

rrreee
    Sekarang, apabila menghantar $num ke fungsi add_one(), ia mesti dihantar melalui rujukan. Jika anda tidak lulus dengan rujukan, anda akan mendapat ralat.
Kes praktikal🎜🎜🎜Berikut ialah kes praktikal untuk Nilai Lulus dan Rujukan Lulus: 🎜🎜🎜Nilai lulus: 🎜🎜🎜🎜 Fungsi trim, seperti 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!

Kenyataan:
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