Rumah > Artikel > pembangunan bahagian belakang > Apakah kaedah lulus parameter untuk fungsi PHP?
Terdapat dua cara untuk menghantar parameter dalam PHP: panggilan mengikut nilai (parameter diluluskan sebagai salinan nilai, pengubahsuaian dalam fungsi tidak menjejaskan pembolehubah asal) dan lulus melalui rujukan (alamat parameter diluluskan, pengubahsuaian dalam fungsi akan menjejaskan pembolehubah asal), apabila pembolehubah asal perlu diubah suai Dalam kes pembolehubah, gunakan hantaran rujukan Contohnya, apabila mengira jumlah harga troli beli-belah, lulus rujukan diperlukan untuk mengira dengan betul.
Terdapat dua kaedah utama lulus parameter dalam PHP:
1 Nilai lulus**
Dalam kaedah ini, Argumen dihantar. nilai mereka. Jika nilai parameter diubah suai dalam fungsi, nilai pembolehubah asal tidak akan terjejas.
function double($number) { $number *= 2; return $number; } $num = 10; $result = double($num); echo $num; // 输出: 10 echo $result; // 输出: 20
2 Pass-by-Reference**
Dalam pass-by-reference, alamat parameter dihantar ke fungsi dan bukannya nilai. Ini bermakna jika nilai parameter diubah suai dalam fungsi, nilai pembolehubah asal juga akan terjejas.
function &triple(&$number) { $number *= 3; return $number; } $num = 10; $result = &triple($num); echo $result; // 输出: 30 echo $num; // 输出: 30
Pelaksanaan fungsi keranjang belanja
memerlukan fungsi untuk mengira jumlah harga semua barang di dalam troli beli-belah. Senarai item disimpan dalam tatasusunan, dan setiap item mempunyai harga.
$cart = [ ['product' => 'Apple', 'price' => 1.20], ['product' => 'Orange', 'price' => 0.80] ]; function get_total_price($cart) { $total = 0; foreach ($cart as &$item) { $total += $item['price']; } return $total; } $total_price = get_total_price($cart);
Dalam contoh di atas, harga setiap item dalam get_total_price
函数的 $cart
参数使用引用传递。这是必要的,因为函数会修改 $cart
(tambahkan pada jumlah harga). Jika dipanggil mengikut nilai, perubahan ini tidak akan ditunjukkan dalam tatasusunan troli beli-belah asal yang diserahkan kepada fungsi.
Atas ialah kandungan terperinci Apakah kaedah lulus parameter untuk fungsi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!