Schleife und return in PHP
Nehmen wir an, wir haben eine Funktion, die die Summe
der Zahlen von 1 bis 5 zurückgibt:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // gibt 15 aus
?>
Nehmen wir nun an, wir platzieren return
innerhalb der Schleife, so:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
In diesem Fall wird die Schleife nur eine
Iteration durchlaufen und ein automatisches Verlassen
der Funktion (und damit auch der Schleife) erfolgen. In einer
Iteration der Schleife befindet sich in der Variable $sum
nur die Zahl 1, und nicht die gesamte benötigte Summe.
Was wird als Ergebnis der Ausführung des folgenden Codes auf dem Bildschirm ausgegeben:
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
Erklären Sie, warum.
Was beabsichtigte der Autor dieses Codes? Korrigieren Sie den Fehler des Autors.