Trong đoạn mã sau:Việc sử dụng một hàm trong vòng lặp foreach có lưu trữ kết quả hoặc gọi hàm mỗi lần không?
function a(){
echo 'a';
return array(1,2,3,4);
}
foreach(a() as $t){
echo $t;
}
Chúng ta có thể thấy một() được gọi là một lần duy nhất, và có vẻ như giá trị trả về sẽ được lưu trữ ...
Nhưng sau đó tôi nhận được để xem this debate (see comments on the question) tôi thiếu cái gì?
Hãy thử thay đổi thành 'for ($ a = 0; $ a <= count (a()); $ a ++)' và xem những gì bạn nhận được :) –