Làm gì =&
(bình đẳng-và) toán tử gán làm trong PHP?
Nó có bị phản đối không?
Làm gì =&
(bình đẳng-và) toán tử gán làm trong PHP?
Nó có bị phản đối không?
Câu trả lời:
Nó không bị phản đối và có thể sẽ không. Đó là cách tiêu chuẩn để, ví dụ, thực hiện một phần của một mảng hoặc đối tượng phản chiếu các thay đổi được thực hiện sang một mảng khác, thay vì sao chép dữ liệu hiện có.
Nó được gọi là gán bằng tham chiếu , mà, để trích dẫn hướng dẫn sử dụng, "có nghĩa là cả hai biến đều trỏ đến cùng một dữ liệu và không có gì được sao chép ở bất kỳ đâu" .
Điều duy nhất không được chấp nhận =&
là "gán kết quả new
bằng tham chiếu" trong PHP 5 , điều này có thể là nguồn gốc của bất kỳ sự nhầm lẫn nào. new
được tự động gán bằng tham chiếu, do đó, &
là dư thừa / không được chấp nhận trong $o = &new C;
, nhưng không được dùng trong $o = &$c;
.
Vì khó tìm kiếm, hãy lưu ý rằng =&
( dấu bằng và ) giống với = &
( dấu bằng và dấu cách ) và thường được viết sao cho nó chạy vào biến khác như $x = &$y['z'];
hoặc $x = &$someVar
( tên biến dấu bằng và dấu đô la ). Ví dụ được đơn giản hóa từ tài liệu:
$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4
Đây là một liên kết hữu ích đến phần chi tiết về Chỉ định Bằng Tham chiếu trong sổ tay PHP . Trang đó là một phần của loạt bài về tài liệu tham khảo - bạn nên dành một phút để đọc toàn bộ.
Đó là hai toán tử khác nhau. =
là nhiệm vụ như bạn có thể biết. Và &
có nghĩa là biến nên được truy cập bằng tham chiếu chứ không phải theo giá trị.