Hướng dẫn dùng passing reference trong PHP

Mặc định, biến trong PHP khi được truyền vào như tham số của hàm thì sẽ được truyền theo giá trị [pass by value]. Khi mà biến được truyền vào như vậy, tham số sẽ chỉ có hiệu lực ở trong hàm đó, mọi thay đổi tham số đó trong hàm không hề ảnh hưởng đến giá trị của biến gốc [biến ta dùng để truyền vào].

Ví dụ:

Code language: HTML, XML [xml]

Output:

Bien cuc bo Bien toan cuc

Pass by reference [truyền địa chỉ]: Khi biến được truyền bằng cách này, ta sẽ cần dùng thêm dấu & trước tên biến, ví dụ: function[&$x]. Và khi dùng cách này, bản chất ta chỉ báo cho chương trình rằng đây là địa chỉ của biến ta truyền vào. Khi ta thay đổi giá trị biến ở trong hàm thì thực ra ta đang thay đổi giá trị của biến ta truyền vào. Điều này cũng có thể thực hiện theo hướng ngược lại: thay đổi giá trị của biến truyền vào thì biến trong hàm cũng sẽ được thay đổi.

Ví dụ:

Code language: PHP [php]

Output:

Bien cuc bo [chu y no nhe] Bien cuc bo [chu y no nhe]

Như thấy ở ví dụ trên, biến $string bị thay đổi trong hàm cũng làm thay đổi luôn biến $string ta truyền vào.

Tham khảo thêm:

//www.php.net/manual/en/language.references.pass.php

Mặc định, biến trong PHP khi được truyền vào như tham số của hàm thì sẽ được truyền theo giá trị [pass by value]. Khi mà biến được truyền vào như vậy, tham số sẽ chỉ có hiệu lực ở trong hàm đó, mọi thay đổi tham số đó trong hàm không hề ảnh hưởng đến giá trị của biến gốc [biến ta dùng để truyền vào].

Ví dụ:

Code language: HTML, XML [xml]

Output:

Bien cuc bo Bien toan cuc

Pass by reference [truyền địa chỉ]: Khi biến được truyền bằng cách này, ta sẽ cần dùng thêm dấu & trước tên biến, ví dụ: function[&$x]. Và khi dùng cách này, bản chất ta chỉ báo cho chương trình rằng đây là địa chỉ của biến ta truyền vào. Khi ta thay đổi giá trị biến ở trong hàm thì thực ra ta đang thay đổi giá trị của biến ta truyền vào. Điều này cũng có thể thực hiện theo hướng ngược lại: thay đổi giá trị của biến truyền vào thì biến trong hàm cũng sẽ được thay đổi.

Ví dụ:

Code language: PHP [php]

Output:

Bien cuc bo [chu y no nhe] Bien cuc bo [chu y no nhe]

Như thấy ở ví dụ trên, biến $string bị thay đổi trong hàm cũng làm thay đổi luôn biến $string ta truyền vào.

Tham khảo thêm:

//www.php.net/manual/en/language.references.pass.php

Mặc định, biến trong PHP khi được truyền vào như tham số của hàm thì sẽ được truyền theo giá trị [pass by value]. Khi mà biến được truyền vào như vậy, tham số sẽ chỉ có hiệu lực ở trong hàm đó, mọi thay đổi tham số đó trong hàm không hề ảnh hưởng đến giá trị của biến gốc [biến ta dùng để truyền vào].

Ví dụ:

Code language: HTML, XML [xml]

Output:

Bien cuc bo Bien toan cuc

Pass by reference [truyền địa chỉ]: Khi biến được truyền bằng cách này, ta sẽ cần dùng thêm dấu & trước tên biến, ví dụ: function[&$x]. Và khi dùng cách này, bản chất ta chỉ báo cho chương trình rằng đây là địa chỉ của biến ta truyền vào. Khi ta thay đổi giá trị biến ở trong hàm thì thực ra ta đang thay đổi giá trị của biến ta truyền vào. Điều này cũng có thể thực hiện theo hướng ngược lại: thay đổi giá trị của biến truyền vào thì biến trong hàm cũng sẽ được thay đổi.

Ví dụ:

Code language: PHP [php]

Output:

Bien cuc bo [chu y no nhe] Bien cuc bo [chu y no nhe]

Như thấy ở ví dụ trên, biến $string bị thay đổi trong hàm cũng làm thay đổi luôn biến $string ta truyền vào.

Tham khảo thêm:

//www.php.net/manual/en/language.references.pass.php

Chủ Đề