PHP开发的过程中,难免会发生系统BUG,真实每一个程序员都会出现的问题,而竟然丰富的程序员能够很快的进行bug定位,并进行修改,而大部分的程序人员,在面对这些问题时束手无策。这里就根据错误类型进行分类,来看看应当从哪几个角度进行分析。
语法错误
语法错误最常见,并且最容易修复.例如,遗漏了一个分号,就会显示错误信息.这类错误会阻止脚本执行.通常发生在程序开发时,可以通过错误报告进行修复,再重新运行.
运行时错误
这种错误一般不会阻止PHP脚本的运行,但是会阻止脚本做希望它所做的任何事情.例如,在调用header()函数前如果有字符输出,PHP通常会显示一条错误消息,虽然PHP脚本继续运行,但header()函数并没有执行成功.
逻辑错误
这种错误实际上是最麻烦的,不但不会阻止PHP脚本的执行,也不会显示出错误消息.例如,在if语句中判断两个变量的值是否相等,如果错把比较运行符号"=="写成赋值运行符号"="就是一种逻辑错误,很难会被发现.
一个异常则是在一个程序执行过程中出现的一个例外,或是一个事件,它中断了正常指令的运行,跳转到其他程序模块继续执行.所以异常处理经常被当做程序的控制流程使用.无论是错误还是异常,应用程序都必须能够以妥善的方式处理,并做出相应的反应,希望不要丢失数据或者导致程序崩溃.
错误类型和基本的调试方法
运行PHP脚本时,PHP解析器会尽其所能地报告它遇到的问题.在PHP中错误报告的处理行为,都是通过PHP的配置文件php.ini中有关的配置指令确定的.另外PHP的错误报告有很多种级别,可以根据不同的错误报告级别提供对应的调试方法.一旦把PHP设置成呈现出发生了哪些错误,你可能想调整错误报告的级别.在表10-1中列出了PHP中大多数的错误报告级别.
PHP的错误报告级别
E_ERROR 致命的运行时错误(它会阻止脚本的执行)
E_WARNING 运行时警告(非致命的错误)
E_PARSE 从语法中解析错误
E_NOTICE 运行时注意消息(可能是或者可能不是一个问题)
E_CORE_ERROR 类似E_ERROR,但不包括PHP核心造成的错误
E_CORE_WARNING 类似E_WARNING,但不包括PHP核心错误警告
E_COMPILE_ERROR 致命的编译时错误
E_COMPILE_WARNING 致命的编译时警告
E_USER_ERROR 用户导致的错误消息
E_USER_WARNING 用户导致的警告
E_USER_NOTICE 用户导致的注意消息
E_ALL 所有的错误、警告和注意
E_STRICT 关于PHP版本移植的兼容性和互操作性建议