Forum: NOF - Tutorials (185 anschauliche Tutorials zum Lesen und Nacharbeiten) > PHP und MySQL - Tutorials und Kurzanleitungen

Das Script funktioniert nicht - Fehlersuche wenn Scripts nicht laufen

<< < (2/2)

Hans K.:
Kommen wir nun zu dem 3. Fehler im Code.

Der wohl häufigste Fehler ist eine nicht korrekte Klammernsetzung. Dabei spielt es keine Rolle, ob geschweifte oder runde Klammern falsch gesetzt sind, diese erzeugen immer einen Parse Error.

Wie kann das  vermieden werden? Zählen, zählen und nochmals zählen. Zählt die Klammern durch, es müssen immer genausoviele geschlossen werden, wie geöffnet sind.
Um das übersichtlicher zu gestalten, sollte man mit Einrückungen arbeiten. Dabei springt man immer um einen Tabulator weiter, wenn man eine geöffnete geschweifte Klammer gesetzt hat (und natürlich immer einen Tabulator weniger, wenn die Klammer geschlossen wird).


Falsch gesetzte Anführungszeichen, bzw. Hochkommas, sowie Semikolons erzeugen ebenfalls Parse Error. Zum Beispiel folgender Code:

--- Code: PHP ---<?echo 'Hello';echo 'World'
Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in DeineDomäne.de\Seitenname.php on line 3
bedeutet, in der Zeile 3 fehlt hinter dem Echo Befehl ein Semikolon.

Währenddessen

--- Code: PHP ---<?echo 'Helloecho 'World';
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in DeineDomäne.de\Seitenname.php on line 3
zwar auf einen ähnlichen Fehler hindeutet, aber ein Hochkomma beim ersten Echo der Fehler ist.

Hier muss man absolut logisch denken, dann versteht man auch warum das so ist. Der Interpreter liest den Code so:

--- Code: PHP ---<?echo 'Hello echo 'World';Somit fehlt von der Logik her ein Semikolon in Zeile 2 hinter dem Hochkomma (wobei das echo ja in Zeile 3 steht und deshalb Zeile 3 als fehlerhafte Zeile ausgewiesen wird).

Hans K.:
Der letzte Punkt kann durchaus der schwierigste sein: 4. logische Fehler

Kernaussage ist : Das Script läuft, aber das Ergebnis ist nicht das erwartete.

Um den logischen Ablauf zu überprüfen, sollten eingesetzte Variablen sichtbar gemacht werden.

Sieht das Script zum Beispiel so aus:

--- Code: PHP ---<?php$zahl1 = 10;$zahl2 = 5; $addition = $zahl1 + $zahl2;$subtraktion = $zahl1 - $zahl2;$multiplikation = $zahl1 * $zahl2;$division = $zahl1 / $zahl2;?>
Dann kann zur Überprüfung einfach ein echo mit den Variablen angehangen werden:

--- Code: PHP ---<?php$zahl1 = 10;$zahl2 = 5; $addition = $zahl1 + $zahl2;$subtraktion = $zahl1 - $zahl2;$multiplikation = $zahl1 * $zahl2;$division = $zahl1 / $zahl2; echo $addition;echo $subtraktion;echo $multiplikation;echo $division;?>
Wenn nun auf dem Bildschirm 155502 zu sehen ist, dann ist der Code bis hierhin funktionell.
Auch wenn das jetzt ein sehr schlichtes Beispiel ist, bei komplexeren Scripts funktioniert es genau so. Wenn Variablen verarbeitet werden, an geeigeneten Stellen eine Ausgabe mit echo erzeugen, um die Variable zu überprüfen.

Hans K.:
Wenn das Script nun fehlerfrei läuft, kann der vorhin eingefügte Code wieder entfernt werden:

--- Code: PHP ---error_reporting (E_ALL | E_STRICT);ini_set ('display_errors' , 1);

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln