Подтвердить что ты не робот

Список всех возможных ошибок PHP

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

Различные части языка PHP представлены внутри типов типами T_SR. PHP выводит идентификаторы, такие как это одно в синтаксических ошибках, таких как "Анализ ошибка: неожиданный T_SR, ожидающий ',' или ';' в script.php в строке 10." Вы должны знать, что T_SR означает. Для всех, кто не знает что, вот таблица с теми идентификаторы, PHP-синтаксис и ссылки в соответствующие места в руководство.

Ответ 3

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

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

Ответ 5

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

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

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