Boucle et return en PHP
Supposons que nous ayons une fonction renvoyant la somme
des nombres de 1 à 5 :
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // affichera 15
?>
Supposons maintenant que nous placions le return
à l'intérieur de la boucle, comme ceci :
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
Dans ce cas, la boucle ne fera qu'une seule itération
et une sortie automatique de la fonction se produira
(et par la même occasion de la boucle). Et en une seule
itération de la boucle, la variable $sum contiendra
seulement le nombre 1, et non pas la somme totale requise.
Qu'est-ce qui sera affiché à l'écran suite à l'exécution du code suivant :
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Expliquez pourquoi.
Que voulait faire l'auteur de ce code ? Corrigez l'erreur de l'auteur.