Utilizarea lui return într-o buclă în PHP
Faptul că return este plasat în interiorul unei bucle,
nu este întotdeauna o eroare.
Următorul exemplu prezintă o funcție care
determină câte dintre primele elemente ale array-ului
trebuie adunate, pentru ca suma să devină mai mare sau
egală cu 10:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Dacă suma este mai mare sau egală cu 10:
if ($sum >= 10) {
return $i + 1; // ieșim din buclă și din funcție
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
Următorul exemplu prezintă o funcție care
calculează câte numere întregi, începând cu
1, trebuie adunate, pentru ca rezultatul
să fie mai mare de 100:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // buclă infinită
$sum += $i;
if ($sum >= 100) {
return $i; // bucla se execută până când iese de aici
}
$i++;
}
}
echo func();
?>
Scrieți o funcție care va primi un număr ca parametru
și îl va împărți la 2
de atâtea ori, până când rezultatul va deveni mai mic
de 10. Funcția trebuie să returneze numărul
de iterații care au fost necesare pentru a ajunge la
rezultat.