Gebruik van return in een lus in PHP
Dat return zich binnen een lus bevindt,
is niet altijd een fout.
In het volgende voorbeeld is een functie gemaakt die
bepaalt hoeveel van de eerste elementen van een array
opgeteld moeten worden zodat de som groter dan of
gelijk aan 10 wordt:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Als de som groter dan of gelijk is aan 10:
if ($sum >= 10) {
return $i + 1; // verlaten we de lus en de functie
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
In het volgende voorbeeld is een functie gemaakt die
berekent hoeveel gehele getallen, te beginnen vanaf
1, opgeteld moeten worden zodat het resultaat
groter dan 100 is:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // oneindige lus
$sum += $i;
if ($sum >= 100) {
return $i; // de lus draait totdat hij hier uitbreekt
}
$i++;
}
}
echo func();
?>
Schrijf een functie die een getal als parameter accepteert
en het deelt door 2
zoveel keer, totdat het resultaat kleiner wordt dan
10. Laat de functie het aantal iteraties teruggeven
dat nodig was om het resultaat te bereiken.