学科分类
目录
PHP基础

错误级别

PHP中的错误不仅有多种类型,并且每个错误都有一个错误级别与之关联,用于表示当前错误的等级,如Error、Warning、Notice等。PHP采用常量的形式来表示错误级别,每个错误级别都是一个整型, PHP中常见的错误级别如表1所示。

表1 PHP中常见的错误级别

级别常量 描述
E_ERROR 1 致命的运行时错误,这类错误不可恢复,会导致脚本停止运行
E_WARNING 2 运行时警告,仅提示信息,但是脚本不会停止运行
E_PARSE 4 编译时语法解析错误,说明代码存在语法错误,无法执行
E_NOTICE 8 运行时通知,表示脚本遇到可能会表现为错误的情况
E_CORE_ERROR 16 类似E_ERROR,是由PHP引擎核心产生的
E_CORE_WARNING 32 类似E_WARNING,是由引擎核心产生的
E_COMPILE_ERROR 64 类似E_ERROR,是由Zend脚本引擎产生的
E_COMPILE_WARNING 128 类似E_WARNING,是由Zend脚本引擎产生的
E_USER_ERROR 256 类似E_ERROR,由用户在代码中使用trigger_error()产生的
E_USER_WARNING 512 类似E_WARNING,由用户在代码中使用trigger_error()产生的
E_USER_NOTICE 1024 类似E_NOTICE,由用户在代码中使用trigger_error()产生的
E_STRICT 2048 严格语法检查,确保代码具有互用性和向前兼容性
E_DEPRECATED 8192 运行时通知,对未来版本中可能无法正常工作的代码给出警告
E_ALL 32767 表示所有的错误和警告信息(在PHP 5.4之前不包括E_STRICT)

为了使读者更好地理解这些错误级别,下面针对开发过程中经常遇到的错误信息进行演示。

1. Notice(E_NOTICE)

遇到Notice提示信息通常是代码不严谨造成的,不会影响脚本继续执行,示例代码如下。

// ① 使用未定义的变量
echo $var;      // 提示信息“Notice:Undefined variable…”
// ② 使用未定义的常量
echo PI;       // 提示信息“Notice:Use of undefined constant…”

对于上述错误,当使用一个不确定是否存在的变量或常量时,应先判断变量是否存在或常量是否已经定义,从而避免遇到这些错误。在实际开发中,建议大家对于Notice级别的错误不要忽略,要尽量保持代码的严谨和准确。

2. Warning(E_WARNING)

Warning错误级别相比Notice更严重一些,不会影响脚本继续执行,示例代码如下。

// ① 除法运算时,除数为0
echo 5 / 0;     // 提示信息“Warning:Division by zero…”
// ② 使用include包含不存在的文件
include '1234';     // 提示信息“Warning:include():Failed opening…”

对于上述错误,在进行除法运算前,可以使用if判断除数是否为0,若为0则拒绝执行除法运算;在使用include包含文件前,先判断该文件是否存在,防止错误发生。

3. Fatal error(E_ERROR)

Fatal error是一种致命错误,一旦发生这种错误,PHP脚本会立即停止执行。例如,调用未定义的函数时就会发生致命错误,示例代码如下。

display();     // Fatal error:Uncaught Error:Call to undefined function …
echo 'hello';   // 前一行发生错误,此行代码不会执行

对于致命性错误,由于是在运行时发生,而且一旦发生则程序会立即停止,具有一定的隐蔽性。因此,在开发时,需要对程序进行充分的测试。

点击此处
隐藏目录