Funktionsdeklaration in PHP3

Hallo,

was mich zur Zeit tierisch an PHP3 aufregt und mich deshalb von dessen Einsatz ein wenig abhält sind die FUnktionen.

So kann ich in perl zum Beispiel mit einer Abfrage von QUERY_STRING in verschiedene sub’s verzweigen, also mehrere Script praktisch je nach ?action=soundso in eins zu verbinden.

Aber in PHP ist mir ähnliches noch nicht gelungen, dass will die Funktion unbedingt am Anfang der Datei haben, da blick ich dann nicht mehr durch, kann man das nich tirgendwie umgehen, also so ne art sub-Konzept wie in Perl.

Ich versteh nicht ganz, was Dein Problem ist. Wenn der Aufruf z.B.
…/foo.php3?action=bar

ist dann kannst Du im Skript schreiben:

function action\_bar() {
 tu(hier, irgend, was);
}

function action\_bar2() {
 tu(hier, irgendwas, anderes);
}

if ($action == "bar") {
 action\_bar();
} elseif ($action == "bar2") {
 action\_bar2();
} else {
 echo "Aktion \"$action\" unbekant.";
}

Ist das nicht das, was Du willst?

Ja genau, mir geht es aber ein wenig um die Reihenfolge, ich will eigentlich nicht die Funktionen alle oben haben und auch so anordnen, wie sie aufgerufen werden, weil wenn sie sich gegenseitig aufrufen müsste dass ja auch berücksichtigt sein in der Reihenfolge.
Leider geht es auch nicht, zumindest ist es mir nicht gelungen, nur die Funktionsdeklaration in den Kopf zu stellen, also ne Art Header wie im C, wo ich nur schreibe ‚int soundso(int x);‘
und dann weiter unten den Funktionsbody schreibe.

Bruno

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Aus der PHP-Dokumentation:
In PHP3, functions must be defined before they are referenced. No such requirement exists in PHP4.

Du musst also die Funktion deklarieren bevor Du sie aufrufst, was aber eigentlich normalerweise kein Problem sein duerfte, ausser Du hast eine Rekursion ueber 2 Funktionen, was aber aeusserst selten ist.

Falls Dir das nicht passt, kannst Du die Funktionen ja in eine eigene Datei tun und dann mit require oder include einfuegen.