Giả sử nếu điều này là mã:Trong PHP, làm thế nào để chúng ta trả về một mảng lớn?
function bar() {
$result = array();
for ($i = 0; $i < 1000; $i++) {
$result[] = $i * 10;
}
return $result;
}
$ha = bar();
print_r($ha);
Há chẳng phải hiệu quả để trả lại một mảng lớn như vậy vì nó là "trở lại theo giá trị"? (nói nếu nó không phải là 1000 nhưng 1000000). Vì vậy, để cải thiện nó, chúng ta sẽ có sự thay đổi người đầu tiên:
function &bar() {
có nghĩa là, chỉ bằng cách thêm một &
ở phía trước của tên hàm - đây là một cách chính xác và ưa thích nếu một mảng lớn được trả lại?
Chỉ định nghĩa chức năng mới có thể có biển báo tham chiếu, chứ không phải hàm gọi –
@Jack: vui lòng đọc tài liệu (* cẩn thận *) và undownvote me: http://nz.php.net/manual/en/language.references.return.php (đặc biệt là lưu ý đầu tiên: "Không giống như thông số đi qua, ở đây bạn phải sử dụng & ở cả hai nơi") – zerkms
Lời xin lỗi của tôi, tôi đứng sửa .. khá mơ hồ thứ tôi phải nói :) –