Uso do return em loops em PHP

O fato de return estar localizado dentro de um loop não significa que seja um erro.

No exemplo a seguir, temos uma função que determina quantos dos primeiros elementos de um array precisam ser somados para que o total se torne maior ou igual a 10:

php<?php
  function func($arr) {
    $length = count($arr);
    $sum = 0;
    
    for ($i = 0; $i < $length; $i++) {
      $sum += $arr[$i];
      
      // Se a soma for maior ou igual a 10:
      if ($sum >= 10) {
        return $i + 1; // saímos do loop e da função
      }
    }
  }
  
  $res = func([1, 2, 3, 4, 5]);
  echo $res;
?>

No exemplo a seguir, temos uma função que calcula quantos números inteiros, começando em 1, precisam ser somados para que o resultado seja maior que 100:

php<?php
  function func() {
    $sum = 0;
    $i = 1;
    
    while (true) { // loop infinito
      $sum += $i;
      
      if ($sum >= 100) {
        return $i; // o loop continua até sair aqui
      }
      
      $i++;
    }
  }
  
  echo func();
?>
Задание 1

Escreva uma função que receba um número como parâmetro e o divida por 2 quantas vezes for necessário até que o resultado se torne menor que 10. A função deve retornar a quantidade de iterações que foram necessárias para alcançar o resultado.