Der Martin: Kein Rückgabewert in Funktion

Beitrag lesen

Hi Manuel,

ich steh momentan echt aufm Schlauch. Ich hab eine Funktion geschrieben, die sich beharrlich weigert, einen Rückgabewert auszugeben.

*g*

function pathway($id = ''){
  [...]
  echo $pathway;
  return $pathway;
}
}

Jetzt wird zwar der String mit echo $pathway; ausgegeben, das return $pathway ist aber wirkungslos.

Was heißt "wirkungslos"? Was liefert die Funktion wirklich als Ergebnis ab? Einen Leerstring? Ein null?

echo pathway();

Da wäre es interessant, mal ein

p = pathway();
  var_dump(p);

zu machen. Was wird wirklich zurückgegeben, welchen Typ hat der Ausdruck?
Mir persönlich kommt es verdächtig vor, eine Variable genauso zu nennen wie die Funktion. Aber wenn du sagst, du hättest den Funktionsnamen schon probehalber geändert...
Hast du auch schon versucht, anstatt des 'return $pathway;' mal eine Stringkonstante zurückzugeben? Das klappt?
Was mir noch auffällt: Die Variable $pathway wird erst *innerhalb* eines Blocks, nämlich im foreach(), definiert. Gibt es da eventuell ein Problem mit dem Gültigkeitsbereich?

So long,
 Martin

--
Viele Fachleute vertreten die Ansicht, jedes Feature eines Programms, das sich nicht auf Wunsch abstellen lässt, sei ein Bug.
Außer bei Microsoft. Da ist es umgekehrt.