2010-03-01 12 views
19

Manchmal, während Codierung in PHP wir Parse oder Syntaxfehler wie diejenigen erhalten:Liste aller möglichen PHP-Fehler

Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in /var/www/example/index.php on line 4 

Ich möchte wissen, ob es eine Liste aller möglichen Fehler ist, dass PHP-Interpreter kann ausgeben. Ich habe php.net gesucht, konnte aber so etwas nicht finden. Ich brauche diese Liste für akademische Zwecke.

+0

Dieser Fehler ist wahrscheinlich nur, weil Sie Ihre vorherigen Zeile schließen vergessen. – Layke

+3

@Laykes: Ich denke du musst die Frage nochmal lesen;) –

+0

Ja, das habe ich absichtlich gemacht, um das Beispiel eines Fehlers zu bekommen. Ich interessiere mich mehr für die tatsächliche Liste der möglichen Fehlermeldungen, nicht in der Lösung von ihnen - das ist ein anderes Problem :) –

Antwort

9

Nein, es gibt keinen guten Weg. Selbst das vorgeschlagene grep für zend_Error() ist nutzlos. Die Fehler der Art, die Sie in der Frage zeigen, werden meistens vom Bison-Parser-Generator erzeugt und PHP nimmt es einfach von dort. Ähnliches passiert mit Fehlern, die vom Betriebssystem gemeldet werden (wie Fehler beim Öffnen von Dateien). Die PHP-Entwickler können nicht wirklich eine gute Liste für diese erstellen, da die Fehler von dem Betriebssystem abhängen, auf dem es läuft, und den Versionen, die beim Kompilieren verwendet werden.

Die einzige Sache, die für zend_error() und php_Error_docref() grepping zeigt, ist eine allgemeine Übersicht über mögliche Fehlerarten, aber bei weitem nicht alle Fehlermeldungen.

2

ich bin einer solchen Liste nicht bekannt, aber man kann immer wie

find . -name "*.c" | xargs grep "zend_error" 
+0

Ich habe das berücksichtigt. Wenn es keine Dokumentation zu Fehlern gibt, muss ich dies tun. –

5

ich herunterladen oder etwas php Quellen Kasse und wissen nicht, ob eine umfassende Liste der möglichen PHP-Fehler vorhanden ist, aber über Parser-Fehler sollten Sie die Liste der PHP-Parser-Token

http://php.net/manual/en/tokens.php

hier Kasse, was das Handbuch sagt:

Various parts of the PHP language are represented internally by types like T_SR. PHP outputs identifiers like this one in parse errors, like "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.

+0

Danke diese Liste ist auch sehr nützlich für mich! –

+0

-1 das ist gut zu wissen, aber wie hängt es mit Fehlermeldungen zusammen? –

+0

@Pekka: Dieser Link gibt Ihnen die Liste der Token nach Namen, so dass Sie sehen können, welcher Token in Ihrem Code einen Parser-Fehler auslöst, damit Sie Ihren Parse-Fehler lösen können, lesen Sie bitte das kurze Intro oben auf der Seite http : //php.net/manual/de/token.php –

0

Dies ergibt 1346 Treffer für mich auf der neuesten PHP-Quelle (einschließlich Duplikate). Es kann ein guter Weg sein, aber die Liste ist aus den Gründen, die von @johannes beschrieben werden, noch lange nicht vollständig.

Auf der anderen Seite wird es extrem schwierig sein, einen spezifischen Typ parse Fehler trotzdem zu definieren, wie ich mir vorstellen, sie werden von Parser während der Laufzeit kompiliert und sind nirgendwo in der Quelle aufgeführt.

Können Sie näher erläutern, wofür Sie das brauchen? Vielleicht können Sie eine "Unterklasse" von Fehlern definieren, die für Ihre Bedürfnisse bereits ausreichend ist.

Verwandte Themen