2010-03-01 3 views
19

Иногда, при кодировании в PHP мы получаем разбор или синтаксические ошибки, как те:Список всех возможных ошибок PHP

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

Я хотел бы знать, если есть список всех возможных ошибок PHP интерпретатор может выводить. Я искал php.net, но не мог найти такую ​​вещь. Мне нужен этот список для академических целей.

+0

Эта ошибка, вероятно, только потому, что вы забыли закрыть предыдущую строку. – Layke

+3

@Laykes: Я думаю, вам нужно снова прочитать вопрос;) –

+0

Да, я сделал это намеренно, чтобы получить пример ошибки. Меня больше интересует получение фактического списка возможных сообщений об ошибках, а не их решение - это еще одна проблема :) –

ответ

9

Нет хорошего пути. Даже предложенный grep для zend_Error() бесполезен. Ошибки, которые вы показываете в вопросе, в основном генерируются генератором парсера бизонов, а PHP просто берет его оттуда. Подобные вещи случаются с ошибками, сообщаемыми операционной системой (например, при открытии файлов). Разработчики PHP не могут создать хороший список для них, поскольку ошибки зависят от операционной системы, на которой она работает, и от версий, используемых при компиляции.

Единственное, что grepping для zend_error() и php_Error_docref() может показать вам общий обзор возможных типов ошибок, но далеко не все сообщения об ошибках.

2

я не знаю такого списка, но вы всегда можете скачать или источники фотографии PHP и сделать что-то вроде

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

Я это рассмотрел. Если документации по ошибкам нет, мне придется это сделать. –

5

Я не знаю, существует ли полный список возможных ошибок PHP, но об ошибке синтаксического анализатора, вы должны оформить список PHP Parser лексемы

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

вот что говорит руководство:

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

Спасибо, этот список очень полезен и для меня! –

+0

-1 это полезно знать, но как это связано с сообщениями об ошибках? –

+0

@Pekka: Эта ссылка дает вам список токенов по имени, поэтому вы можете видеть, какой токен в вашем коде вызывает ошибку парсера, поэтому вы можете решить свою ошибку синтаксического анализа, пожалуйста, прочитайте краткое введение в верхней части страницы по адресу http : //php.net/manual/en/tokens.php –

0

Это дает 1346 просмотров для меня на последнем источнике PHP (включая дубликаты). Это может быть хороший путь, однако список далеко не полный из-за причин, изложенных @johannes.

С другой стороны, это будет чрезвычайно трудно определить конкретный тип разбора ошибок в любом случае, как я предполагаю, что они составляются во время выполнения синтаксического анализа и не перечислены в любом месте в источнике.

Можете ли вы подробно остановиться на том, что вам нужно? Возможно, вы можете определить «подкласс» ошибок, которые уже достаточны для ваших нужд.

Смежные вопросы