列出所有可能的PHP错误

时间:2010-03-01 10:39:15

标签: php

有时,在PHP编码时,我们会得到解析或语法错误,如:

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

我想知道,如果有一个PHP解释器可以输出的所有可能错误的列表。我搜索过php.net,但找不到这样的东西。我需要这个列表用于学术目的。

5 个答案:

答案 0 :(得分:10)

没有好方法。甚至为zend_Error()建议的grep也没用。您在问题中显示的那种错误主要是由bison解析器生成器生成的,PHP只是从那里获取它。操作系统报告的错误也会发生类似的事情(比如打开文件时的错误)。 PHP开发人员无法为这些生成良好的列表,因为错误取决于它运行的操作系统和编译时使用的版本。

对zend_error()和php_Error_docref()的唯一重要事项可以向您显示可能的错误类型的概述,但到目前为止并非所有错误消息。

答案 1 :(得分:6)

我不知道是否存在可能的PHP错误的综合列表, 但是关于解析器错误,你应该检查PHP解析器令牌列表

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

这是手册所说的内容:

  

PHP语言的各个部分由类型之类的内部表示   T_SR。 PHP输出标识符   这个解析错误,如“解析   错误:意外T_SR,期待','   要么 ';'在第10行的script.php中。“   你应该知道什么是T_SR   手段。对于每个不认识的人   那,这是一张表   标识符,PHP语法和引用   到了适当的地方   手册。

答案 2 :(得分:2)

我不知道这样的列表,但您可以随时下载或检查php源代码并执行类似

的操作
 find . -name "*.c" | xargs grep "zend_error"

答案 3 :(得分:2)

如果您要查找所有可能错误类型的列表,这将有助于: http://www.php.net/manual/en/errorfunc.constants.php

答案 4 :(得分:0)

这为我提供了最新PHP源代码(包括重复项)的1346次点击。这可能是一个很好的方法,但由于@johannes概述的原因,该列表远未完成。

另一方面,无论如何定义解析错误的特定类型将非常困难,因为我认为它们在运行时由解析器编译,并且未在源代码中的任何位置列出

你能详细说明你需要的东西吗?也许你可以定义一个已经足够满足你需要的错误的“子类”。