Uso de return en bucles en PHP
Que el return esté ubicado dentro de un bucle,
no siempre es un error.
En el siguiente ejemplo, se creó una función que
determina cuántos de los primeros elementos del array
necesitan sumarse para que la suma sea mayor o
igual a 10:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Si la suma es mayor o igual a 10:
if ($sum >= 10) {
return $i + 1; // salimos del bucle y de la función
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
Y en el siguiente ejemplo, se creó una función que
calcula cuántos números enteros, empezando desde
1, necesitan sumarse para que el resultado
sea mayor a 100:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // bucle infinito
$sum += $i;
if ($sum >= 100) {
return $i; // el bucle gira hasta que salga aquí
}
$i++;
}
}
echo func();
?>
Escriba una función que tome un número como parámetro y lo divida entre 2
tantas veces, hasta que el resultado sea menor
que 10. Que la función devuelva la cantidad
de iteraciones que se requirieron para lograr el
resultado.