在PHP中所有的报错信息可以用error_reporting()这个函数来设置:
它的参数有字符串和数字两种表示方法,共14个等级,但是呢,我看使用其他数字貌似也可以,起初我以为它指的是一定的报错区间,后来,终于发现了其中的规律:
error_reporting(7)=error_reporting(1+2+4)=error_reporting(E_ERROR|E_WARING|E_PARSE)
现在,我将其总结如下:
数字 |
常量 |
说明 |
1 |
E_ERROR |
致命错误,脚本执行中断,就是脚本中有不可识别的东西出现
举例:Error:Invalidparameters.Invalidparametername |
2 |
E_WARNING |
部分代码出错,但不影响整体运行
举例:Warning:require_once(E:/include/config_base.php) |
4 |
E_PARSE |
字符、变量或结束的地方写规范有误
举例: Parseerror:syntaxerror,unexpected$endin |
8 |
E_NOTICE |
一般通知,如变量未定义等
举例: Notice:Undefinedvariable:pinE:\web\index.phponline17 |
16 |
E_CORE_ERROR |
PHP进程在启动时,发生了致命性错误
举例: 暂无 |
32 |
E_CORE_WARNING |
在PHP启动时警告(非致命性错误)
举例: 暂无 |
64 |
E_COMPILE_ERROR |
编译时致命性错误
举例: 暂无 |
128 |
E_COMPILE_WARNING |
编译时警告级错误
举例: 暂无 |
256 |
E_USER_ERROR |
用户自定义的错误消息
举例: 暂无 |
512 |
E_USER_WARNING |
用户自定义的警告消息
举例: 暂无 |
1024 |
E_USER_NOTICE |
用户自定义的提醒消息
举例: 暂无 |
2047 |
E_ALL |
以上所有的报错信息,但不包括E_STRICT的报错信息
举例: 暂无 |
2048 |
E_STRICT |
编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。 |
error_reporting变量的默认值是 E_ALL&~E_NOTICE
开发时,最佳的值为:E_ALL|E_STRICT
如果设置为:error_reporting(E_ALL|E_STRICT),则表示记录所有的错误信息
可能会导致网站出现一大堆的错误代码;但是对于程序员来说应该说是一件好事,可以把代码优化到最优;一些非致命性错误虽然不影响程序的运行,但是会加重PHP的负担.
最后,晒出英文版的对照表:
1 |
E_ERROR |
Fatalrun-timeerrors.Errorsthatcannotberecoveredfrom.Executionofthescriptishalted |
2 |
E_WARNING |
Non-fatalrun-timeerrors.Executionofthescriptisnothalted |
4 |
E_PARSE |
Compile-timeparseerrors.Parseerrorsshouldonlybegeneratedbytheparser |
8 |
E_NOTICE |
Run-timenotices.Thescriptfoundsomethingthatmightbeanerror,butcouldalsohappenwhenrunningascriptnormally |
16 |
E_CORE_ERROR |
FatalerrorsatPHPstartup.ThisislikeanE_ERRORinthePHPcore |
32 |
E_CORE_WARNING |
Non-fatalerrorsatPHPstartup.ThisislikeanE_WARNINGinthePHPcore |
64 |
E_COMPILE_ERROR |
Fatalcompile-timeerrors.ThisislikeanE_ERRORgeneratedbytheZendScriptingEngine |
128 |
E_COMPILE_WARNING |
Non-fatalcompile-timeerrors.ThisislikeanE_WARNINGgeneratedbytheZendScriptingEngine |
256 |
E_USER_ERROR |
Fataluser-generatederror.ThisislikeanE_ERRORsetbytheprogrammerusingthePHPfunctiontrigger_error() |
512 |
E_USER_WARNING |
Non-fataluser-generatedwarning.ThisislikeanE_WARNINGsetbytheprogrammerusingthePHPfunctiontrigger_error() |
1024 |
E_USER_NOTICE |
User-generatednotice.ThisislikeanE_NOTICEsetbytheprogrammerusingthePHPfunctiontrigger_error() |
2048 |
E_STRICT |
Run-timenotices.PHPsuggestchangestoyourcodetohelpinteroperabilityandcompatibilityofthecode |
4096 |
E_RECOVERABLE_ERROR |
Catchablefatalerror.ThisislikeanE_ERRORbutcanbecaughtbyauserdefinedhandle(seealsoset_error_handler()) |
8191 |
E_ALL |
Allerrorsandwarnings,exceptlevelE_STRICT(E_STRICTwillbepartofE_ALLasofPHP6.0) |