Menyahmistifikasi nilai lulus dan rujukan lulus dalam panggilan fungsi PHP

WBOY
Lepaskan: 2024-04-16 14:39:01
asal
1031 orang telah melayarinya

Panggilan fungsi dalam PHP boleh dihantar mengikut nilai atau rujukan. Lalai adalah untuk lulus mengikut nilai, fungsi menerima salinan parameter, dan pengubahsuaian padanya tidak menjejaskan nilai asal. Lulus melalui rujukan diisytiharkan dengan menambahkan simbol & sebelum parameter, dan fungsi itu secara langsung mengubah suai pembolehubah yang diluluskan. Melewati rujukan berguna apabila anda memerlukan fungsi untuk mengubah suai pembolehubah luaran, seperti elemen tatasusunan. . Ini bermakna apabila nilai dihantar ke fungsi sebagai hujah, fungsi akan mendapat salinan nilai. Sebarang perubahan yang dibuat pada salinan ini tidak akan menjejaskan nilai asal.

function addValue($number) { $number += 10; } $value = 10; addValue($value); echo $value; // 输出:10
Salin selepas log masuk

Seperti yang ditunjukkan dalam contoh di atas, apabila$valuedihantar ke fungsiaddValue, fungsi tersebut mendapat salinan pembolehubah. Pengubahsuaian dalam fungsi hanya mempengaruhi salinan, bukan pembolehubah asal.揭秘 PHP 函数调用中的值传递和引用传递

Lulus dengan rujukan

Kadangkala, kita memerlukan fungsi untuk mengubah suai terus pembolehubah asal. Dalam kes ini, rujukan lulus boleh digunakan. Untuk mengisytiharkan rujukan, tambah simbol &sebelum pengisytiharan jenis parameter.

function addReference(&$number) { $number += 10; } $value = 10; addReference($value); echo $value; // 输出:20
Salin selepas log masuk

Seperti yang ditunjukkan dalam contoh di atas, parameter $numberbagi fungsi addReferencediisytiharkan sebagai rujukan. Ini bermakna fungsi tersebut akan mengubah suai terus pembolehubah yang diluluskan.

Contoh Praktikal

$value传递给addValue函数时,函数获取该变量的副本。函数内的修改只影响该副本,不会影响原始变量。

引用传递

有时,我们需要函数直接修改原始变量。这时,可以使用引用传递。要声明引用,请在参数类型声明前添加一个&符号。

$users = [ [ 'id' => 1, 'name' => 'John Doe', ], ]; function changeName(&$user, $newName) { $user['name'] = $newName; } changeName($users[0], 'Jane Doe'); echo $users[0]['name']; // 输出:Jane Doe
Salin selepas log masuk

如上例所示,addReference函数的$number参数声明为引用。这意味着函数将直接修改传递的变量。

实战案例

使用引用传递可以简化某些任务。例如,我们有一个包含用户数据的数组,并且需要在函数中对其进行修改。

rrreee

通过将$user参数声明为引用,changeNameMenggunakan rujukan lulus boleh memudahkan tugas tertentu. Sebagai contoh, kami mempunyai tatasusunan yang mengandungi data pengguna dan perlu mengubah suainya dalam fungsi.

rrreee

Dengan mengisytiharkan parameter$usersebagai rujukan, fungsichangeNameboleh mengubah suai terus elemen asal dalam tatasusunan.

Kesimpulan

Memahami nilai lulus dan rujukan lulus dalam PHP adalah penting untuk menulis kod yang cekap dan boleh diselenggara. Dengan menggunakan rujukan lulus, kita boleh mengelakkan penyalinan pembolehubah yang tidak perlu dan mengubah suai terus pembolehubah di luar fungsi.

Atas ialah kandungan terperinci Menyahmistifikasi nilai lulus dan rujukan lulus dalam panggilan fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!