Pętla i return w PHP
Załóżmy, że mamy funkcję zwracającą sumę
liczb od 1 do 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // wyświetli 15
?>
Załóżmy teraz, że umieścimy return
wewnątrz pętli, w ten sposób:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
W tym przypadku pętla wykona tylko jedną
iterację i nastąpi automatyczne wyjście
z funkcji (a przy okazji również z pętli). W jednej
iteracji pętli w zmiennej $sum znajdzie się
tylko liczba 1, a nie cała wymagana suma.
Co zostanie wyświetlone na ekranie w wyniku wykonania następującego kodu:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Wyjaśnij dlaczego.
Co autor tego kodu chciał zrobić? Popraw błąd autora.