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<?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<?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();
?>
Задание 1

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.