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
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
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();
?>
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.