rekursive Funktion
Dirk Paschel
- php
Hallo!
Folgendes scheint nicht zu klappen.
Die Ausgabe ist immer 1
<?
echo TEST(1);
function TEST($a) {
$output = $a;
$aa = $a + 1;
if ($aa >= 5) {
echo TEST($aa);
}
return $output;
}
?>
Hallo!
Die Ausgabe ist immer 1
<?
echo TEST(1);
function TEST($a) {
$output = $a;
$aa = $a + 1;
if ($aa >= 5) {
echo TEST($aa);
}
return $output;
}
?>
Das ist nicht verwunderlich. Du rufst TEST ja nur nocheinmal auf, wenn $aa größer oder gleich 5 ist.
Kurz vorher sagst du $aa = $a + 1, also ist $aa = 2. Es wird einfach $a (1) ausgegeben und beendet.
Ich hoffe, ich konnte helfen!
Michael
Hallo,
Die Ausgabe ist immer 1
<?
echo TEST(1);
function TEST($a) {
$output = $a;
$aa = $a + 1;
if ($aa >= 5) {
echo TEST($aa);
}
return $output;
}
?>
Wolltest Du nicht eine rekursive Funktion bauen?
Deine ist eigentlich nicht wirklich rekursiv, da sie mit dem Funktionsergebnis nicht weiterabrbeitet, sondern es lediglich ausgibt.
<?php
function TEST($a)
{
$output = $a;
if ($a >= 5)
{
echo 'Ende erreicht: '.$a;
}
else
{
$a = 1 + test($a);
}
return $output;
}
echo TEST(1);
?>
Vielleicht meintest Du es so?
Hier wird im Else-Zweig mit dem Erbegnis der Funktion weitergearbeitet.
LG
Chris