PHP-Syntaxfehler: Wie kann man ihn beheben?
Was ist der Grammatikfehler?
PHP ist eine imperative Programmiersprache im C-Stil. Es unterliegt strengen Syntaxregeln und kann nicht wiederhergestellt werden, wenn ein Symbol oder ein Bezeichner an der falschen Position gefunden wird. Es kann Ihre Programmierabsichten nicht erraten.
Top-Tipps
Es gibt einige grundlegende Vorsichtsmaßnahmen, die Sie immer treffen können:
- Verwenden Sie die richtige Codeeinrückung oder übernehmen Sie einen guten Codierungsstil . Lesbarkeit hilft, Ausnahmen zu verhindern.
- Verwenden Sie eine PHP- IDE oder einen -Editor mit Syntaxhervorhebung . Es hilft auch bei der Balance zwischen Halterung und Halterung.
- Lesen Sie die Sprachreferenzen und Beispiele im Handbuch sorgfältig durch. Lesen Sie es zweimal, um ein gewisses Maß an Meisterschaft zu erlangen.
So interpretieren Sie Parser-Fehler
Eine typische Syntaxfehlermeldung lautet wie folgt:
Parse-Fehler: Syntaxfehler, unerwartet in file.php Zeile 217 T_STRING, erfordert ';'
, das mögliche Orte von Syntaxfehlern auflistet. Siehe erwähnten Dateiname und Zeilennummer. Ein Header wie
T_STRING erklärt, welches Symbol der Parser/Tokenizer letztendlich nicht verarbeiten konnte. Dies ist jedoch nicht unbedingt die Ursache des Syntaxfehlers.
Es ist wichtig, sich auch die Codezeilen anzusehen, die vorangehen. Oftmals handelt es sich bei Grammatikfehlern nur um kleinere Fehler, die früher passiert sind. Die Fehlerzeilennummer ist genau der Punkt, an dem der Parser die Behandlung aller Fehler endgültig aufgibt.
Grammatikfehler beheben
Es gibt viele Möglichkeiten, Grammatikprobleme einzugrenzen und zu beheben.
-
Öffnen Sie die genannte Quelldatei. Schauen Sie sich die erwähnte Codezeile an.
- Bei außer Kontrolle geratenen Zeichenfolgen und falsch platzierten Operatoren finden Sie dort normalerweise den Übeltäter.
- Lesen Sie die Zeile von links nach rechts und stellen Sie sich vor, was jedes Symbol bewirkt.
-
Häufiger müssen Sie sich die Zeile ansehen, die vorausgeht.
- Insbesondere fehlt das Semikolon; das Semikolon fehlt am Ende einer vorherigen Zeile/Anweisung. (Zumindest aus stilistischer Sicht)
- Wenn der Codeblock { } nicht richtig geschlossen oder verschachtelt ist, müssen Sie möglicherweise tiefer in den Quellcode eintauchen. Verwenden Sie dazu die entsprechende Code-Einrückung.
-
Schauen Sie sich Syntax Coloring an!
- Strings, Variablen und Konstanten sollten alle unterschiedliche Farben haben.
- Operatoren -*/ sollten auch anders gefärbt sein, sonst stehen sie möglicherweise im falschen Kontext.
- Wenn Sie sehen, dass die Zeichenfolgenschattierung zu weit oder zu kurz ist, dann haben Sie eine nicht maskierte oder fehlende schließende Zeichenfolgenmarkierung „ oder ' gefunden.
- Wenn Sie als Nächstes zwei Satzzeichen derselben Farbe sehen Untereinander kann auch Ärger bedeuten, wenn das nicht der Fall ist. oder Klammern, die einem Operator folgen. Meistens ist es falsch, wenn zwei Zeichenfolgen/Bezeichner direkt neben
-
Leerzeichen stehen Befolgen Sie einen beliebigen Codierungsstil. >Lange Zeilen vorübergehend aufteilen
-
Sie können frei Zeilenumbrüche
zwischen Operatoren oder Konstanten und Zeichenfolgen hinzufügen, und der Parser wird dies tun, anstatt sich sehr langen Code anzusehen Zeilennummern für Parsing-Fehler. Beseitigen Sie fehlende oder falsch platzierte Syntaxsymbole.
- Teilen Sie komplexe if-Anweisungen in verschiedene oder verschachtelte if-Bedingungen auf. Verwenden Sie temporäre Variablen, um die Lesbarkeit zu verbessern = weniger Fehler)
- Zeilenumbrüche hinzufügen zwischen:
-
- Sie können leicht als korrekten Code erkennen, Der Teil, bei dem Sie sich nicht sicher sind,
- und die Zeile, über die sich der Parser beschwert, werden durch
-
geteilt. Lange Codeblöcke
helfen wirklich, die Quelle von Syntaxfehlern zu finden
Kommentieren Sie
problematischen Code aus Wenn Sie die Quelle nicht ermitteln können Um das Problem zu beheben, beginnen Sie mit dem Auskommentieren (d. h. dem vorübergehenden Löschen) des Codes -
Sobald Sie den Parsing-Fehler beheben, werden Sie die Ursache des Problems finden. Manchmal möchten Sie den gesamten Funktions-/Methodenblock vorübergehend entfernen und Codeeinrückungsfehler)
as Wenn Sie das Syntaxproblem nicht lösen können, versuchen Sie, - die auskommentierten Abschnitte von Grund auf neu zu schreiben
-
-
- , um als Neuling einige verwirrende Syntaxstrukturen zu vermeiden.
Ternär?: Bedingter Operator kann die Erzeugung reduzieren Code und funktioniert zwar, aber es verbessert nicht in allen Fällen die Lesbarkeit. Versuchen Sie, sich an gewöhnliche if-Anweisungen zu halten (if:/elseif:/endif;), die häufig für Vorlagen verwendet werden, aber wahrscheinlich nicht so gut sind als { code }-Blöcke sind leicht zu befolgen >
“ oder „ Die Anführungszeichen der Zeichenfolge stimmen nicht überein und es gibt Anführungszeichen ohne Escapezeichen. Vergessen Sie den Operator, insbesondere den Operator
- für die Verkettung. Zählen Sie sie in den gemeldeten Zeilen. Sind ihre Mengen gleich?
- Vergessen Sie nicht, dass die Lösung eines Grammatikproblems das nächste aufdecken kann.
- Wenn Sie dafür sorgen, dass ein Problem verschwindet, im Code unten aber andere Probleme auftauchen, sind Sie größtenteils auf dem richtigen Weg.
- Wenn nach der Bearbeitung ein neuer Syntaxfehler in derselben Zeile auftritt, schlagen Ihre Änderungsversuche möglicherweise ebenfalls fehl. (Aber nicht immer)
-
Wenn Sie das Problem nicht beheben können, stellen Sie eine Sicherungskopie Ihres zuvor funktionierenden Codes wieder her.
- Übernehmen Sie ein Quellcode-Versionskontrollsystem. Sie können immer den Unterschied zwischen der Beschädigung und der letzten funktionierenden Version erkennen. Dies könnte erklären, wo das Syntaxproblem liegt.
-
Unsichtbare verirrte Unicode-Zeichen : In einigen Fällen müssen Sie einen Hex-Editor oder einen anderen Editor für den Quellcode/Viewer verwenden. Einige Probleme können nicht durch einen Blick auf den Code entdeckt werden.
- Versuchen Sie grep --color -P -n "[x80-xFF]" file.php als ersten Schritt, um Nicht-ASCII-Symbole zu finden.
- Insbesondere Stücklisten, Leerzeichen mit der Breite Null oder geschützte Leerzeichen und Anführungszeichen finden häufig Eingang in den Quellcode. -
-
Beachten Sie den in der Datei gespeicherten Zeilenumbruchtyp.
- PHP unterstützt nur das Zeilenvorschubzeichen n und nicht das Wagenrücklaufzeichen r.
- Dies ist gelegentlich nur für MacOS-Benutzer ein Problem (sogar unter OS X, das zur Fehlkonfiguration des Editors verwendet wird).
- Bei der Verwendung einzeiliger //- oder #-Kommentare kommt es in der Regel nur dann zu Problemen, wenn Zeilenumbrüche ignoriert werden. Mehrzeilige /.../-Kommentare beeinträchtigen den Parser selten, wenn Zeilenumbrüche ignoriert werden.
-
Wenn Ihr Grammatikfehler nicht über das Netzwerk übertragen wird: Auf Ihrem Computer liegt ein Syntaxfehler vor. Es wird jedoch nicht noch einmal passieren, dass genau dieselbe Datei online gestellt wird. Dies kann nur eines von zwei Dingen bedeuten:
- Sie sehen sich die falsche Datei an!
- Oder Ihr Code enthält unsichtbaren Streu-Unicode (siehe oben). Das können Sie ganz einfach herausfinden: Kopieren Sie einfach den Code aus dem Webformular zurück in Ihren Texteditor.
-
Überprüfen Sie Ihre PHP-Version. Möglicherweise sind nicht alle Syntaxkonstrukte auf jedem Server verfügbar.
- PHP -v des Befehlszeileninterpreters
- über den Webserver aufgerufen
Das ist nicht unbedingt dasselbe . Insbesondere bei der Verwendung von Rahmen müssen diese aufeinander abgestimmt sein.
- Verwenden Sie keine von PHP reservierten Schlüsselwörter als Bezeichner für Funktionen/Methoden, Klassen oder Konstanten.
- Experimente sind Ihr letzter Ausweg.
Wenn alles andere fehlschlägt, können Sie jederzeit im Internet nach Ihrer Fehlermeldung suchen. Syntaxsymbole sind nicht leicht zu durchsuchen (Stack Overflow selbst wird von SymbolHound indiziert). Daher kann es mehrere Seiten dauern, bis Sie die relevanten Informationen finden.
Erweiterte Lektüre
- David Sklars „PHP Debugging Basics“
- Jason McCrearys „Fixing PHP Errors“
- Mario Lurigs „PHP Errors – 10 häufige Fehler“. 》
- 《Gemeinsames PHP Fehler und Lösungen》
- So beheben und reparieren Sie Ihre WordPress-Website
- Ein Leitfaden für Designer zu PHP-Fehlermeldungen – Smashing Magazine
White Dead Screen
Wenn Ihre Website nur leer ist, ist der übliche Fehler ein Syntaxfehler. Aktivieren Sie ihre Anzeige mit:
- error_reporting = E_ALL
- display_errors = 1
normalerweise in Ihrer php.ini oder im Fall von mod_php Via . htaccess und sogar für FastCGI-Einstellungen über .user.ini.
Es ist zu spät, es in einem kaputten Skript zu aktivieren, da PHP nicht einmal die erste Zeile interpretieren/ausführen kann. Eine schnelle Lösung besteht darin, ein Wrapper-Skript wie test.php:
zu erstellen und dann den fehlerhaften Code aufzurufen, indem Sie auf dieses Wrapper-Skript zugreifen.
Es ist auch hilfreich, PHPs error_log zu aktivieren und sich das error.log des Webservers anzusehen, wenn das Skript abstürzt und eine HTTP 500-Antwort erhält.
Das obige ist der detaillierte Inhalt vonPHP-Syntaxfehler: Wie kann ich sie beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn