Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Truyền tham chiếu (Pass By Reference) vs Truyền giá trị (Pass By Value) trong PHP

Mặc định PHP truyền đối số theo giá trị: thay đổi bên trong hàm không ảnh hưởng biến ngoài. Để hàm sửa đổi biến gốc, truyền theo tham chiếu bằng dấu & trong định nghĩa hàm.

Pass By Reference

<?php
function increment(&$a) {
    $a++;
}
$a = 5;
increment($a);
echo $a; // 6
?>

Biến $a thay đổi cả bên ngoài hàm.

Pass By Value (mặc định)

<?php
function increment($a) {
    $a++;
    echo $a . "
"; // 6 } $a = 5; increment($a); echo $a; // 5 (giữ nguyên) ?>

Lưu ý

  • Dấu & chỉ ở định nghĩa hàm, không ở lời gọi.
  • Truyền tham chiếu lúc gọi (func(&$a)) DEPRECATED từ PHP 5.4.