suit: - es geht nicht -

Beitrag lesen

Ich mag dieses try - and - error - Prinzip nicht, deshalb habe ich vorher gefragt.

Das ist prinzipiell nicht schlecht - aber es schadet auch nicht, etwas auszuprobieren und dann eine "Warum?"- oder "Alternativen?"-Frage zu stellen anstatt einfach mal "Geht das?" zu fragen.

Das spart allen beteiligten Zeit - und vor allem dir, wenn es dringend ist :)

In Turbo-Pascal

Du meinst Pascal - Turbo Pascal ist eine IDE und erinnert mich immer wieder an einen Bluescreen ;) das kann nichts gutes verheissen.

muss man eine später kommende Funktion mit "forward" ankündigen.

So ist das bei rein interpretierten, prozeduralen Sprache die einen Strukturierungsansatz - da gibts auch GOTO-Konstrukte.

Gibt es sowas bei PHP auch? Habe ich nicht gefunden, heisst vielleicht ganz anders.

Auch wenn es viele unsinnige Leichen aus dem prozeduralen Bereich in PHP gibt (z.B. auch GOTO) Gibts afaik nichts was dem entspricht. Beim verarbeiten eines Includes wird in den HTML-Mode geschaltet - von da ab kennt PHP keine Anweisungen wie etwa GOTO mehr (wenn man davon absieht, dass im Include selbst natürlich schon so gearbeitet werden kann). Wenn das Include Abgearbeitet ist, werden die Variablen und Funktionen in den entsprechenden Gültigkeitsbereich geschrieben und wieder in den PHP-Mode gewechselt.

Es ist afaik also nicht möglich eine Funktion in einem Include aufzurufen bevor das Include abgearbeitet wurde - genausowenig sollte es möglich sein, mit einem GOTO von "außen" auf eine Zeile in einem Include zu sprigen.

Da PHP eine Objektorientierte Sprache sein möchte - und das auch immer mehr wird - ist wie von EKKi angesprochen das EVA-Prinzip empfehlenswert. Ausgaben sollen möglichst nicht dort erfolgen wo sie erzeugt werden sondern später und gesammelt.

Idealerweise holt man sich zuerst alle benötigen Funktionen/Klassen und führt sie später an der richtigen Stelle aus.

Für deinen Fall bietet sich eventuell noch eine Krücke mit Output-Control-Funktionen an. Die lassen sich auch in includes verwenden - auch das steht in der Doku - aber schlau ist das imho nicht.