PHP 错误处理 error_reporting() 函数


PHP 错误处理 error_reporting() 函数用于指定在代码执行期间应显示或记录哪些错误。它显示确切的错误消息,以帮助开发人员查找和解决错误。

可以选择显示所有错误、不显示任何错误,还是仅显示某些错误。这对于在开发过程中进行调试以及在生产环境中保持站点安全非常有用。使用 error_reporting() 使您的 PHP 程序更加可靠且易于管理。

语法

以下是 PHP 错误处理 error_reporting() 函数的语法 -


int error_reporting ( ?int $error_level = null )

参数

此函数接受 $error_level 参数,该参数指定当前脚本的错误报告级别。接受值 number 和常量名称。

返回值

error_reporting() 函数在设置为 error_level 之前返回 error_reporting 级别。

报表级别

以下是下表中列出的报告级别 -

常量 描述 PHP
1 E_ERROR 运行时致命错误。无法恢复的错误。脚本的执行已停止  
2 E_WARNING 运行时非致命错误。脚本的执行未停止  
4 E_PARSE 编译时分析错误。解析错误应仅由解析器生成  
8 E_NOTICE 运行时通知。脚本发现了一些可能是错误的内容,但也可能在正常运行脚本时发生  
16 E_CORE_ERROR PHP 启动时出现致命错误。这就像 PHP 核心中的一个 E_ERROR 4
32 E_CORE_WARNING PHP 启动时出现非致命错误。这就像 PHP 核心中的一个 E_WARNING 4
64 E_COMPILE_ERROR 编译时致命错误。这类似于 Zend Scripting Engine 生成的 E_ERROR 4
128 E_COMPILE_WARNING 编译时非致命错误。这就像 Zend Scripting Engine 生成的 E_WARNING 4
256 E_USER_ERROR 用户生成的致命错误。这就像程序员使用 PHP 函数 trigger_error() 设置的 E_ERROR 4
512 E_USER_WARNING 用户生成的非致命警告。这就像程序员使用 PHP 函数 trigger_error() 设置的 E_WARNING 4
1024 E_USER_NOTICE 用户生成的通知。这就像程序员使用 PHP 函数 trigger_error() 设置的 E_NOTICE 4
2048 E_STRICT 运行时通知。PHP 建议对代码进行更改,以帮助代码的互作性和兼容性 5
4096 E_RECOVERABLE_ERROR 可捕获的致命错误。这类似于 E_ERROR但可以由用户定义的句柄捕获(另请参见 set_error_handler()) 5
8191 E_ALL 除级别 E_STRICT 之外的所有错误和警告 5

PHP 版本

error_reporting() 函数首次在核心 PHP 4 中引入,在 PHP 5、PHP 7 和 PHP 8 中继续轻松运行。

示例 1

这是 PHP 错误处理 error_reporting() 函数的基本示例,用于显示所有 PHP 错误和常量 E_ALL。这有助于在开发过程中进行调试。


<?php
   // 允许报告所有错误
   error_reporting(E_ALL);

   // 未定义的变量(将显示错误)
   echo $undefinedVariable;
?>

以下是以下代码的结果 -

Notice: Undefined variable: undefinedVariable in C:\user\WWW\index.php on line 6

示例 2

该程序展示了如何通过将 error_reporting() 函数设置为零来阻止所有错误。当您不希望错误消息出现在活动网站上时,这非常有用。


<?php
   // 禁用所有错误报告
   error_reporting(0);

   // 未定义的变量
   echo "不会显示任何错误";
   echo $undefinedVariable;
?> 

这将生成以下输出 -

不会显示任何错误

示例 3

该程序演示了如何在脚本执行期间使用 error_reporting() 方法动态更改错误报告级别。它从允许的所有错误开始,然后转到 无错误报告。


<?php
   // 启用所有错误
   error_reporting(E_ALL);
   echo "当前显示所有错误。\n";

   // 显示未定义的变量错误
   echo $undefinedVariable;

   // 关闭错误报告
   error_reporting(0);
   echo "错误报告功能现已关闭。\n";

   // 另一个未定义的变量(未显示错误)
   echo $anotherUndefinedVariable;
?> 

这将创建以下输出 -

当前显示所有错误。
Notice: Undefined variable: undefinedVariable in C:\user\WWW\index.php on line 7
错误报告功能现已关闭。