Rückgabewert aus rekursiver Funktion
basti_p
- php
0 Christian S.0 basti_p
Hallo,
folgendes Problem:
meine PHP-Funktion ruft sich so lange erneut auf, bis ein bestimmter Zustand erreicht ist, dann soll ein Wert zurückgegeben werden.
function getEntryId($entry_id=0)
{
$result=mysql_query("SELECT entry_id FROM...");
if(mysql_num_rows($result)>0)
{
$row=mysql_fetch_array($result);
getEntryId($row['entry_id']);
}
else
{
return $entry_id;
}
}
Die SELECT-Abfrage ist korrekt, wenn ich mir die Werte mit echo ausgeben lasse, funktioniert alles.
Möchte ich aber so auf den return-Wert zugreifen:
$var=getEntryId(4);
und die Funktion ruft sich mehrfach auf, ist $var leider leer. Kann ich diese Funktion überhaupt so einsetzen oder wird dann nur der erste Durchlauf berücksichtigt?
Danke und Grüße Basti
Hi,
function getEntryId($entry_id=0)
{
$result=mysql_query("SELECT entry_id FROM...");
if(mysql_num_rows($result)>0)
{
$row=mysql_fetch_array($result);
getEntryId($row['entry_id']);
}
else
{
return $entry_id;
}
}
$entry_id wird ja auch NIE mit einem Wert belegt...
Die Funktion getEntryId sollte immer einen return wert haben!
etwa so:
function getEntryId($entry_id=0)
{
$result=mysql_query("SELECT entry_id FROM...");
if(mysql_num_rows($result)>0)
{
$row=mysql_fetch_array($result);
$entry_id = getEntryId($row['entry_id']);
}
return $entry_id;
}
Also wichtig ist natürlich, dass du das Ergebnis der rekursiven Aufrufe einer Variablen zuweist.
Gruß
Christian
Danke, das wars!
Grüße Basti