Lussen en return in PHP
Stel we hebben een functie die de som teruggeeft
van getallen van 1 tot 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // geeft 15 weer
?>
Stel nu dat we return
in de lus plaatsen, zoals dit:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
In dit geval zal de lus slechts één iteratie
doen en zal er automatisch uit de functie worden
gesprongen (en dus ook uit de lus). In één
iteratie van de lus zal in variabele $sum slechts
het getal 1 staan, en niet de volledige benodigde som.
Wat wordt er weergegeven als resultaat van het uitvoeren van de volgende code:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Leg uit waarom.
Wat probeerde de auteur van deze code te doen? Verbeter de fout van de auteur.