Løkke og return i PHP
Lad os sige, at vi har en funktion, der returnerer summen
af tal fra 1 til 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // vil udskrive 15
?>
Lad os nu placere return
inde i løkken, sådan her:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
I dette tilfælde vil løkken kun køre én
iteration, og der vil ske en automatisk afslutning
af funktionen (og dermed også af løkken). Og ved én
iteration af løkken vil variablen $sum indeholde
kun tallet 1, og ikke hele den ønskede sum.
Hvad vil der blive udskrevet på skærmen som resultat af udførelsen af følgende kode:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Forklar hvorfor.
Hvad havde forfatteren af denne kode til hensigt at gøre? Ret forfatterens fejl.