10/10/2018, 09:48

[PHP] code $a =& $b nghĩa là sao?

Mình thấy một số code php có đoạn
Code:
$a =& $b;
hoặc
Code:
$a =& classname;
Viết như vậy nghĩa là gì vậy các bác
maychu.net viết 11:55 ngày 10/10/2018
Trích từ :
1. http://vn2.php.net/manual/en/languag...les.basics.php
2. http://vn2.php.net/manual/en/languag...ces.whatdo.php

PHP Code:
<?php
$foo 
'Bob';              // Assign the value 'Bob' to $foo
// gán giá trị Bob cho biến $foo

$bar = &$foo;              // Reference $foo via $bar. 
// biến $foo và biến $bar có cùng giá trị tham khảo, là Bob

$bar "My name is $bar";  // Alter $bar...
echo $bar;
echo 
$foo;                 // $foo is altered too.
?>
Vậy
PHP Code:
<?php
$a 
=& $b;
?>
it means that $a and $b point to the same content.
có nghĩa là biến $a và biến $b được gán đến cùng một giá trị tham khảo
nhunet viết 11:56 ngày 10/10/2018
Nghĩa là gán $b cho $a như một tham biến chứ không phải tham trị.
hoanghai27 viết 11:53 ngày 10/10/2018
có nghĩa là cho 2 biến này hợp làm 1 phải không?
Nếu một biến thay đổi thì biến còn lại sẽ thay đổi theo?
locdvoss viết 11:58 ngày 10/10/2018
Được gửi bởi hoanghai27
Mình thấy một số code php có đoạn
Code:
$a =& $b;
hoặc
Code:
$a =& classname;
Viết như vậy nghĩa là gì vậy các bác
Kiểu gán này thực hiện gán giá trị tại vùng nhớ của $b cho biến $a, cũng có nghĩa là bất kể khi nào gái trị của $b hay $a thay đổi thì cả 2 biến cùng bị thay đổi vì giá trị trên vùng nhớ lúc đó bị thay đổi và cả $a và $b cùng đọc giá trị từ vùng nhớ đó như vậy gọi là tham chiếu.
hoanghai27 viết 11:53 ngày 10/10/2018
Hay thiệt nhưng mà chưa nghĩ ra cái gì để ứng dụng vào
fotech_nd viết 11:53 ngày 10/10/2018
Được gửi bởi hoanghai27
có nghĩa là cho 2 biến này hợp làm 1 phải không?
Nếu một biến thay đổi thì biến còn lại sẽ thay đổi theo?
=> "hợp làm 1" - nghe nó hơi củ chuối bạn à, ở đây khi viết $a = & $b; thì có nghĩa là $a và $b là tương đương nhau về mặt giá trị, tức là $a và $b ở đây tuy là 2 cái tên khác nhau nhưng cùng trỏ tới một biến.

Nếu bạn đã học C thì nó cũng gần giống với khái niệm con trỏ của C. Để hiểu hơn bạn nên hỏi anh gồ về tham biến và tham trị.
locdvoss viết 11:51 ngày 10/10/2018
oh tất nhiên là có nhiều thứ ứng dụng được chứ. Giả sử 1 hàm mà bạn muốn trả về 1 lúc nhiều gái trị chứ không phải là 1 giá trị thì bạn có thể áp dụng được.
VD:
Code:
function calculate($param1, $param2, &$add, &$sub, &$dis) {

   $add = $param1 + $param2;
   $sub = $param1 - $param2;
   $dis = $param1 / $param2;
}
gọi hàm:
Code:
$p1 = 8; $p2 = 4;
$a = ''; $s = ''; $d = '';
caculate($p1, $p2, &$a, &$s, &$d);
echo "addstion=$a, subtraction=$s, disvision=$d";
kết quả: addsition=12, subtraction=4, disvision=2
phuongthom viết 12:02 ngày 10/10/2018
Được gửi bởi locdvoss
oh tất nhiên là có nhiều thứ ứng dụng được chứ. Giả sử 1 hàm mà bạn muốn trả về 1 lúc nhiều gái trị chứ không phải là 1 giá trị thì bạn có thể áp dụng được.
VD:
Code:
function calculate($param1, $param2, &$add, &$sub, &$dis) {

   $add = $param1 + $param2;
   $sub = $param1 - $param2;
   $dis = $param1 / $param2;
}
gọi hàm:
Code:
$p1 = 8; $p2 = 4;
$a = ''; $s = ''; $d = '';
caculate($p1, $p2, &$a, &$s, &$d);
echo "addstion=$a, subtraction=$s, disvision=$d";
kết quả: addsition=12, subtraction=4, disvision=2
hay đấy, khi nào áp dụng thử
Bài liên quan
0