Utilisation de return dans une boucle en PHP
Le fait que return soit situé à l'intérieur d'une boucle
n'est pas toujours une erreur.
L'exemple suivant présente une fonction qui
détermine combien de premiers éléments d'un tableau
doivent être additionnés pour que la somme devienne supérieure ou
égale à 10 :
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Si la somme est supérieure ou égale à 10 :
if ($sum >= 10) {
return $i + 1; // on sort de la boucle et de la fonction
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
L'exemple suivant présente une fonction qui
calcule combien d'entiers, en commençant par
1, doivent être additionnés pour que le résultat
soit supérieur à 100 :
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // boucle infinie
$sum += $i;
if ($sum >= 100) {
return $i; // la boucle tourne jusqu'à sortir ici
}
$i++;
}
}
echo func();
?>
Écrivez une fonction qui prendra un nombre en paramètre
et le divisera par 2
autant de fois que nécessaire jusqu'à ce que le résultat devienne inférieur
à 10. La fonction doit retourner le nombre
d'itérations qui ont été nécessaires pour atteindre le résultat.