首先了解下PHP有哪些错误,截至到PHP5.5,一共有16个错误级别。注意:尝试下面的代码的时候请确保打开error_log:
ini_set('display_errors', 'On');
或者在php.ini配置文件中进行如下设置
error_reporting = E_ALL
display_errors = on
两者的区别是前者只针对当前脚本有效,后者是全局生效的。
E_ERROR这种错误是致命错误,会在页面显示Fatal Error, 当出现这种错误的时候,程序就无法继续执行下去了
E_WARNING这种错误只是警告,不会终止脚本,程序还会继续进行,显示的错误信息是Warning。比如include一个不存在的文件。
E_NOTICE这种错误程度更为轻微一些,提示你这个地方不应该这么写。这个也是运行时错误,这个错误的代码可能在其他地方没有问题,只是在当前上下文情况下出现了问题。
E_PARSE 这个错误是编译时候发生的,在编译期发现语法错误,不能进行语法分析。
E_STRICT 这个错误是PHP5之后引入的,你的代码可以运行,但是不是PHP建议的写法。
E_RECOVERABLE_ERROR 这个级别其实是ERROR级别的,但是它是期望被捕获的,如果没有被错误处理捕获,表现和E_ERROR是一样的。
E_DEPRECATED 这个错误表示你用了一个旧版本的函数,而这个函数后期版本可能被禁用或者不维护了。
E_CORE_ERROR, E_CORE_WARNING 这两个错误是由PHP的引擎产生的,在PHP初始化过程中发生。
E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, E_USER_DEPRECATED, 这些错误都是用户制造的,使用trigger_error,这里就相当于一个口子给用户触发出各种错误类型。
E_ALL 列出E_STRICT出外的所有错误和警告信息。