Derzeit online: ca. 72 User  
Spenden via PayPal PHP für dich ist auch als Buch erhältlich - im handlichen Format, zum Nachschlagen, Mitnehmen oder gemütlichen nebenbei Lesen. Mit noch mehr Informationen, zusätzlichen Beispielen und Übungsaufgaben.
Jetzt in der aktualisierten Version bei Amazon oder BoD bestellen!


Fehlersuche

Parse error: syntax error, unexpected T_ECHO

Ein parse error in Verbindung mit einem sytnax error taucht in PHP immer dann auf, wenn wir fehlerhaften PHP-Code verwenden. Die simpelste Form wäre ein vergessenes Semikolon am Zeilenende. So wirft folgender Code mit einem in Zeile 2 fehlenden Semikolon also selbstverständlich einen Fehler:
  1. <?php
  2. echo "Ein einfacher Text"
  3. echo "Noch mehr Text";
  4. ?>
Die Fehlermeldung dazu lautet:
Parse error: syntax error, unexpected T_ECHO, expecting ';' in /www/error.php on line 3

Für den Anfänger ist zunächst vielleicht erstaunlich, dass der Fehler in Zeile 3 sein soll, wo wir ihn doch in Zeile 2 eingebaut haben. Das liegt an der Arbeitsweise von PHP, die dazu führt, dass der Fehler erst dann wirklich ein Fehler ist, wenn ein Befehl nicht ausführbar ist. In unserem Fall kann PHP die echo-Anweisung in Zeile 3 nicht mehr ausführen, da das Semikolon als Abschluss der Anweisung in Zeile 2 fehlt.

Mit der Fehlermeldung sagt uns PHP jetzt, dass ein unerwartetes T_ECHO aufgetreten ist. T_ECHO - was ist denn das?

PHP wandelt intern unseren Code in so genannte Token um. Diese Token verwendet es dann, um zu überprüfen, ob der vorhandene Code ausführbar ist, ist das nicht der Fall, benennt es den fehlerhaften Token - in unserem Fall eben T_ECHO, der nichts anderes aussagt, als dass der echo-Befehl an dieser Stelle von PHP nicht erwartet wurde und auch nicht ausgeführt werden kann.

Gleichzeitig teilt PHP uns auch mit, was es eigentlich erwarten würde, nämlich mit der Meldung expecting ';' - es möchte also ein Semikolon.

Mit diesen Informationen wissen wir jetzt eigentlich genug, um den Fehler zu finden. Uns ist bekannt, dass das echo in Zeile 3 nicht ausgeführt werden kann, weil PHP gerne ein Semikolon hätte. Da der Fehler erst dann auftritt, wenn der nachfolgende Befehl nicht ausführbar ist, muss das Semikolon also vor dem echo in Zeile 3 fehlen und da bleibt in unserem Fall jetzt nicht mehr viel an Möglichkeiten über: Es muss ans Ende von Zeile 2.
  1. <?php
  2. echo "Ein einfacher Text";
  3. echo "Noch mehr Text";
  4. ?>
Übrigens... es würde auch funktonieren, wenn wir tatsächlich exakt das tun würden, was uns PHP sagt und das Semikolon in Zeile 3 setzen würden :-)
  1. <?php
  2. echo "Ein einfacher Text"
  3. ;echo "Noch mehr Text";
  4. ?>
Auch das liefert funktionstüchtigen Code. Ich würde aber nicht empfehlen, sich eine solche Schreibweise anzugewöhnen. Sie ist doch sehr irritierend und kann leicht zu mehr Fehlern führen, als man eigentlich machen würde.

Autor: Claudia Unkelbach

=> Weiter
© 2001 - 2017 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen