Vòng lặp và return trong PHP
Giả sử chúng ta có một hàm trả về tổng
các số từ 1 đến 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // sẽ hiển thị 15
?>
Bây giờ, giả sử chúng ta đặt return
bên trong vòng lặp, như thế này:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
Trong trường hợp này, vòng lặp chỉ thực hiện một
lần lặp và sẽ tự động thoát khỏi hàm (và đồng thời thoát khỏi vòng lặp). Và chỉ với một
lần lặp, biến $sum sẽ chỉ chứa
số 1, chứ không phải toàn bộ tổng cần tìm.
Đoạn mã sau sẽ hiển thị gì trên màn hình:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Hãy giải thích tại sao.
Tác giả đoạn mã này muốn làm gì? Hãy sửa lỗi của tác giả.