PHP – Pass by value and pass by reference

PHP – Pass by value and pass by reference

Ở bài này mình sẽ giải thích về Pass by value (Truyền giá trị) và Pass by reference (Truyền tham chiếu) trong PHP nhé:

Ví dụ:
Tạo một function và có 2 tham số. Sau đó bên trong sẽ set giá trị cho 2 tham số đó. Lần lượt hiển thị các giá trị của các tham số trước và sau khi set ở bên trong function và biến ở bên ngoài function sau khi đã được chạy.


function setValueForParams($paramOne, $paramTwo) {
    var_dump("Insite function and before set:");
    var_dump("Param One $paramOne and Param Two $paramTwo");
    $paramOne = 100;
    $paramTwo = 200;
    var_dump("Insite function and after set:");
    var_dump("Param One $paramOne and Param Two $paramTwo");
}

$paramOne = 10;
$paramTwo = 20;
setValueForParams($paramOne, $paramTwo);
var_dump("Outsite function and after set:");
var_dump("Param One $paramOne and Param Two $paramTwo");

và đây là kết quả:


Insite function and before set: 
Param One 10 and Param Two 20
Insite function and after set: 
Param One 100 and Param Two 200
Outside function and after set: 
Param One 10 and Param Two 20

Bình thường khi bạn truyền một biến vào function với cách khai báo parameters như function trên thì nó sẽ vẫn set được giá trị nhưng khi ở bên ngoài function giá trị của biến không hề thay đổi bởi vì nó không set trực tiếp vào nơi biến $paramOne và $paramTwo được khởi tạo mà tạo một bộ nhớ tạm thời khi function kết thúc nó sẽ mất.

Để thay đổi được giá trị của biến chúng ta phải thêm dấu “&” trước tham số khi khai báo 1 function. Đơn giản như sau:


function setValueForParams(&$paramOne, &$paramTwo) {
    var_dump("Insite function and before set:");
    var_dump("Param One $paramOne and Param Two $paramTwo");
    $paramOne = 100;
    $paramTwo = 200;
    var_dump("Insite function and after set:");
    var_dump("Param One $paramOne and Param Two $paramTwo");
}

$paramOne = 10;
$paramTwo = 20;
setValueForParams($paramOne, $paramTwo);
var_dump("Outsite function and after set: ");
var_dump("Param One $paramOne and Param Two $paramTwo");

Lúc ấy kết quả sẽ là:


Insite function and before set: 
Param One 10 and Param Two 20
Insite function and after set: 
Param One 100 and Param Two 200
Outside function and after set: 
Param One 100 and Param Two 200

Để chạy code php bạn có thể thực hiện cách sau:
Cài XAMPP sau đó tạo 1 folder LearnPHP trong XAMPP/htdoc
Tạo 1 file index.php

Để chạy code bạn mở Command Line hoặc Terminal lên:
cd đến thư mục folder và file index.php mà bạn đã tạo (Đường dẫn dựa vào folder XAMPP mà bạn cài đặt) và chạy lệnh: php index.php


cd XAMPP/htdoc/LearnPHP
php index.php

This Post Has One Comment

Leave a Reply

Close Menu