Cyklus a return v PHP
Předpokládejme, že máme funkci vracející součet
čísel od 1 do 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // vypíše 15
?>
Nyní umístíme return
uvnitř cyklu, takto:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
V tomto případě se cyklus provede pouze v jedné
iteraci a dojde k automatickému ukončení
funkce (a zároveň i cyklu). Při jedné
iteraci cyklu bude v proměnné $sum
pouze číslo 1, a ne celý požadovaný součet.
Co se vypíše na obrazovku jako výsledek provedení následujícího kódu:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Vysvětlete proč.
Co chtěl autor tohoto kódu udělat? Opravte autorovu chybu.