Salamander89
09.07.2009, 21:26:48
Hallo zusammen,
ich bin gerade dabei, meine PHP - Kenntnisse zu vertiefen.
Jetzt hab ich mal ne Frage zu Rekursionen (=Funktionen, die sich in ihrem Rumpf selbst aufrufen):
Ich hab folgenden Code:
<?php
function test($integer) {
if ($integer <=0){
return 0;
}
else {
echo "$integer ";
return $integer + test($integer-2);
}
}
test(20);
?>
Im Browser erhalte ich die Ausgabe "20 18 16 14 12 10 8 6 4 2"
Allerdings, so wie ich den Ablauf der Funktion verstehe, müsste doch eine Addition stattfinden, also in etwa so "38 74 146 290 ...." (ist mir schon klar, dass das eine Endlosschleife wäre). Die Funktion müsste also immer zum vorherigen Return-Wert den Wert (Return - 2) addieren. Warum tut sie das aber nicht?
ich bin gerade dabei, meine PHP - Kenntnisse zu vertiefen.
Jetzt hab ich mal ne Frage zu Rekursionen (=Funktionen, die sich in ihrem Rumpf selbst aufrufen):
Ich hab folgenden Code:
<?php
function test($integer) {
if ($integer <=0){
return 0;
}
else {
echo "$integer ";
return $integer + test($integer-2);
}
}
test(20);
?>
Im Browser erhalte ich die Ausgabe "20 18 16 14 12 10 8 6 4 2"
Allerdings, so wie ich den Ablauf der Funktion verstehe, müsste doch eine Addition stattfinden, also in etwa so "38 74 146 290 ...." (ist mir schon klar, dass das eine Endlosschleife wäre). Die Funktion müsste also immer zum vorherigen Return-Wert den Wert (Return - 2) addieren. Warum tut sie das aber nicht?