Användning av return i loopar i PHP
Att return är placerad inne i en loop
är inte alltid ett misstag.
I följande exempel har en funktion skapats som
bestämmer hur många av de första elementen i arrayen
som behöver läggas ihop för att summan ska bli större eller
lika med 10:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Om summan är större än eller lika med 10:
if ($sum >= 10) {
return $i + 1; // avbryt loopen och funktionen
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
I nästa exempel har en funktion skapats som
beräknar hur många heltal, med start från
1, som behöver läggas ihop för att resultatet
skall bli större än 100:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // oändlig loop
$sum += $i;
if ($sum >= 100) {
return $i; // loopen fortsätter tills den avbryts här
}
$i++;
}
}
echo func();
?>
Skriv en funktion som tar ett nummer som parameter
och delar det med 2
så många gånger, tills resultatet blir mindre
än 10. Låt funktionen returnera antalet
iterationer som krävdes för att uppnå
resultatet.