Apakah perbezaan antara kaedah lulus parameter fungsi PHP?

WBOY
Lepaskan: 2024-04-19 21:15:02
asal
585 orang telah melayarinya

Terdapat dua cara untuk menghantar parameter fungsi dalam PHP: hantaran nilai dan hantaran rujukan. Lulus nilai memindahkan salinan nilai pembolehubah, dan pengubahsuaian pada salinan tidak akan menjejaskan pembolehubah asal, lulus rujukan memindahkan rujukan kepada pembolehubah itu sendiri, dan pengubahsuaian pada rujukan akan menjejaskan pembolehubah asal secara langsung. Dalam pemprosesan borang, pemindahan nilai boleh digunakan untuk mendapatkan data, dan pemindahan rujukan boleh digunakan untuk mengubah suai data, tetapi kaedah pemindahan lalai ialah pemindahan nilai, dan parameter pemindahan rujukan perlu menggunakan simbol &.

Apakah perbezaan antara kaedah lulus parameter fungsi PHP?

Kaedah lulus parameter fungsi PHP

Kaedah lulus parameter fungsi PHP terbahagi kepada dua jenis: hantaran rujukan dan hantaran nilai.

Pass by value

In pass by value, fungsi menerima salinan nilai pembolehubah. Pengubahsuaian kepada salinan tidak menjejaskan pembolehubah asal.

function changeValue($num) {
  $num = 10;
}

$num = 5;
changeValue($num);

echo $num; // 输出 5
Salin selepas log masuk

Lulus dengan rujukan

Secara rujukan, fungsi menerima rujukan kepada pembolehubah itu sendiri. Pengubahsuaian kepada rujukan secara langsung mempengaruhi pembolehubah asal.

function changeValueByReference(&$num) {
  $num = 10;
}

$num = 5;
changeValueByReference($num);

echo $num; // 输出 10
Salin selepas log masuk

Kes praktikal

Dalam pemprosesan borang, kita selalunya perlu mendapatkan data yang dihantar melalui borang. Lulus nilai boleh digunakan untuk mendapatkan data borang, tetapi jika kita ingin mengubah suai data borang, kita perlu menggunakan hantaran rujukan.

<form action="process_form.php" method="post">
  <input type="text" name="name">
  <input type="submit">
</form>
Salin selepas log masuk
// process_form.php
<?php
function processForm($name) {
  // 对 $name 进行修改
  $name = strtoupper($name);
}

$name = $_POST['name'];
processForm($name);

echo $name; // 输出大写后的用户名
?>
Salin selepas log masuk

Nota:

  • Kaedah lulus lalai parameter fungsi adalah mengikut nilai.
  • Parameter yang diluluskan oleh rujukan mesti menggunakan simbol &.
  • Gunakan rujukan lewat dengan berhati-hati, kerana pengubahsuaian yang tidak disengajakan pada rujukan boleh menyebabkan akibat yang tidak diingini.

Atas ialah kandungan terperinci Apakah perbezaan antara kaedah lulus parameter 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan