这些是处理错误处理和日志记录的函数。它们允许我们定义自己的错误处理规则,以及修改记录错误的方式。这使我们能够更改和增强错误报告以满足我们的需求。

通过日志记录功能,我们可以将消息直接发送到其他机器、电子邮件、系统日志等,这样我们就可以有选择地发送消息记录并监控您的应用程序和网站最重要的部分。

错误报告功能使我们能够自定义给出错误反馈的级别和类型,范围从简单的通知到错误期间返回的自定义函数。

安装

使用这些功能无需安装。这些函数是 PHP 核心的一部分。

运行时配置

这些函数的行为受 php.ini 中的设置影响。请参阅运行时配置

PHP 错误处理和日志函数

函数描述
debug_backtrace()生成回溯。
debug_print_backtrace()打印回溯。
error_clear_last()清除最近的错误。
error_get_last()获取最后发生的错误
error_log()将错误消息发送到定义的错误处理例程。
error_reporting()设置哪些 PHP 错误
restore_error_handler()恢复之前的错误处理函数。
restore_exception_handler() 恢复之前定义的异常处理函数。
set_error_handler()生成用户级错误/警告/通知消息。
set_exception_handler()设置用户定义的异常处理函数。
trigger_error()设置用户定义的错误处理函数。
user_error()生成用户级错误/警告/通知消息。 trigger_error() 函数的别名。

PHP 错误和日志常量

下面的常量始终作为 PHP 核心的一部分提供。

注意:这些常量名称可以在 php.ini 中使用,但不能在 PHP 之外使用,例如在 httpd.conf 中,其中可以使用位掩码值。

常量类型描述
1E_ERROR整数致命的运行时错误。这些表示无法恢复的错误,例如内存分配问题。脚本的执行已停止。
2E_WARNING整数运行时警告(非致命错误)。脚本的执行不会停止。
4E_PARSE整数编译时解析错误。解析错误只能由解析器生成。
8E_NOTICE整数Run-时间通知。指示脚本遇到了可能指示错误的情况,但也可能在运行脚本的正常过程中发生。
16E_CORE_ERROR整数PHP 初始启动期间发生的致命错误。这类似于 E_ERROR,只不过它是由 PHP 核心生成的。
32E_CORE_WARNING整数PHP 初始启动期间发生的警告(非致命错误)。这类似于 E_WARNING,只不过它是由 PHP 核心生成的。
64E_COMPILE_ERROR整数致命的编译时错误。这类似于 E_ERROR,只不过它是由 Zend 脚本引擎生成的。
128E_COMPILE_WARNING整数编译时警告(非致命错误)。这类似于 E_WARNING,只不过它是由 Zend 脚本引擎生成的。
256E_USER_ERROR整数用户生成的错误消息。这类似于 E_ERROR,只不过它是通过使用 PHP 函数 trigger_error() 在 PHP 代码中生成的。
512E_USER_WARNING整数用户生成的警告消息。这类似于 E_WARNING,只不过它是通过使用 PHP 函数 trigger_error() 在 PHP 代码中生成的。
1024E_USER_NOTICE整数用户生成的通知消息。这类似于 E_NOTICE,只不过它是通过使用 PHP 函数 trigger_error() 在 PHP 代码中生成的。
2048E_STRICT整数启用 PHP 建议对代码进行更改,以确保最佳的互操作性以及代码的向前兼容性。
4096E_RECOVERABLE_ERROR整数可捕获的致命错误。它表明可能发生了危险错误,但并未使引擎处于不稳定状态。如果错误未被用户定义的句柄捕获(由 set_error_handler() 函数设置),应用程序将中止因为它是 E_ERROR。
8192E_DEPRECATED整数运行时通知。启用此选项可接收有关在未来版本中无法运行的代码的警告。
16384E_USER_DEPRECATED整数用户生成的警告消息。这类似于 E_DEPRECATED,只不过它是通过使用 PHP 函数 trigger_error() 在 PHP 代码中生成的。
32767E_ALL整数所有错误、警告和通知。

以上值(数字或符号)用于构建指定要报告哪些错误的位掩码。按位运算符可用于组合这些值或屏蔽某些类型的错误。