Montag, 9. März 2009

Rudimentäre php-Grundkenntnisse

Wenn Du nun die beiden Beispiele von 1.2 miteinander vergleichst wirst Du feststellen, dass dieser Teil der Unterschied ist:
echo „Hallo Robert“;
?>

Das für sich genommen ist eigentlich schon ein kleines PHP-Script.
PHP wird von einem Parser in html umgeschrieben. Daher muss dieser (eigentlich dumme) Parser wissen, wo das HTML aufhört und wo das PHP anfängt. Daher hat man festgelegt dass das Zeichen
dem Parser sagt: „Hey, hier musst du mit dem PHP anfangen.“
Genauso sagt das Zeichen
?>
dem Parser: „Hey, hier is das PHP zuende und ab danach geht das HTML weiter.
Der Befehl echo gibt, wie Du dir sicher schon gedacht hast, einfach nur den Text aus, der zwischen dem echo und dem ; in Hochkommas steht.
PHP kümmert sich übrigens nicht um Zeilenumbrüche. Wie gesagt, der Parser ist ja eigentlich dumm. Und so ist für ihn immer nach einem ; eine Zeile zuende.
Man könnte also ein PHP-Script in 1 Zeile durchschreiben. Wär aber extrem unübersichtlich.
Wenn man das ; am Ende der Zeile weglassen würde, also das ganze so schreiben würde:
echo „Hallo Robert“
?>
dann würde sich der Parser nicht mehr auskennen und einen Fehler ausgeben. Wenn man also die HTML-Seite aufrufen würde, so würde einen nicht „Hallo Robert“ begrüßen sondern ein unschönes

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\xampplite\htdocs\test.php on line 9

Klingt kryptisch und blöd, ist aber ganz einfach. Und nachdem man diesen Teil 1000 mal gesehen hat (und so oft wirst du sowas mindestens sehen) hat man sich dran gewöhnt.
Am wichtigsten ist eigentlich der letzte Teil „on line 9“.
Denn hier sagt der Parser, wo der Fehler ist. Die Zeilenangabe bezieht hier die HTML-Teile auch mit ein. Daher ist die Zeile 9 natürlich diese:
echo „Hallo Robert“

obwohl beim PHP-Teil es ja die einzige und erste Zeile ist.
Man sieht auch noch dass der Fehler in test.php ist. Da weiß man gleich, wo man suchen muss.
Der Rest
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in
ist meistens wenig aussagekräftig und meiner Erfahrung nach nur in Ausnahmefällen so hilfreich, dass man gleich das weiss was man falsch gemacht hat.
Bis man soweit ist auf 1 Blick zu sehen was falsch ist muss man halt einfach probieren und suchen. Sinnvoll ist es auch, 1 Zeile drüber und drunter zu gucken ob da nicht vielleicht ein ; oder ein „ fehlt (zb bei einem echo).
Alle Dateien oder Webseiten, in denen PHP-Code vorkommt müssen übrigens die Endung .php haben. Denn der Parser bearbeitet nur Seiten mit .php

Keine Kommentare:

Kommentar veröffentlichen