Използване на return в цикъл в PHP
Фактът, че return се намира вътре в цикъл,
не винаги е грешка.
В следващия пример е създадена функция, която
определя колко от първите елементи на масива
трябва да се сумират, за да стане сумата по-голяма или
равна на 10:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Ако сумата е по-голяма или равна на 10:
if ($sum >= 10) {
return $i + 1; // излизаме от цикъла и от функцията
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
А в следващия пример е създадена функция, която
изчислява колко цели числа, започвайки от
1, трябва да се сумират, за да бъде резултатът
по-голям от 100:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // безкраен цикъл
$sum += $i;
if ($sum >= 100) {
return $i; // цикълът се върти, докато не излезе оттук
}
$i++;
}
}
echo func();
?>
Напишете функция, която ще приема число като параметър и ще го дели на 2
толкова пъти, докато резултатът стане по-малък от
10. Нека функцията връща броя
итерации, които са били необходими за постигане на
резултата.