Loop och return i PHP
Låt oss säga att vi har en funktion som returnerar summan
av tal från 1 till 5:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // skriver ut 15
?>
Låt oss nu placera return
inuti loopen, så här:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
I detta fall kommer loopen endast att utföra en
iteration och ett automatiskt avslut av funktionen
(och samtidigt ur loopen) kommer att ske. Och under en
iteration av loopen kommer variabeln $sum endast att innehålla
talet 1, och inte hela den önskade summan.
Vad kommer att skrivas ut på skärmen som ett resultat av att följande kod exekveras:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Förklara varför.
Vad försökte författaren till denna kod göra? Råtta författarens fel.