Цикъл и return в PHP
Нека имаме функция, която връща сумата
на числата от 1 до 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // ще изведе 15
?>
Нека сега поставим return
вътре в цикъла, ето така:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
В този случай цикълът ще се изпълни само една
итерация и ще се излезе автоматично
от функцията (а също и от цикъла). А за една
итерация на цикъла в променливата $sum ще се окаже
само числото 1, а не цялата необходима сума.
Какво ще се изведе на екрана в резултат на изпълнението на следния код:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Обяснете защо.
Какво е искал да направи авторът на този код? Коригирайте грешката на автора.