Cheatah: PHP = Programmierers Höchste Pein

Beitrag lesen

Hi,

Hm, ob ich mich davon schon überzeugen lassen sollte? ;)

ja, denn es ist richtig.

Der Parser erwartet als if-Bedingung doch einen Ausdruck. Was danach
innerhalb der if-Anweisung steht, ist ein Statement. Ich glaube eher
nicht, dass der Parser einen Ausdruck nicht von dem nachfolgenden
Statement unterscheiden kann

Wie soll er auch? Das, was Du hier Statement nennst, gibt ebenfalls einen Boole'schen Wert zurück - nur deswegen funktioniert "funktion() or print 'Fehler';" und ähnliches. Alles, was einen Boole'schen Wert liefert, kann als Ausdruck angesehen werden.

-- da sollte ja mindestens ein Leerzeichen
dazwischen stehen,

Nein, eine schließende Klammer, die als einziges dem Parser mitteilen kann, dass der Ausdruck beendet ist. Alles andere kann nur in einem Syntaxfehler resultieren - oder aufgrund eines sehr kranken Umstandes vielleicht auch nicht, so dass der Fehler unentdeckt bleibt. Nichts desto trotz kann der Parser nicht raten.

Zumindest also die Stelle, an der wirklich ein Fehler auftritt (die
fehlende Klammer nämlich), sollte der Parser erkennen.

Nein, siehe oben. Die Klammer fehlt ihm nämlich nicht, das weißt nur Du.

Das schaffen ja auch Perl und GCC.

Auch Perl und GCC melden Fehler dort, wo sie erstmalig einen entdecken. In sehr vielen Fällen ist das _nicht_ die Stelle, die der Programmierer anschließend korrigiert.

Cheatah