PHP 日本大会 2024

基础

PHP 响应许多内部错误条件报告错误。这些错误可以用来指示许多不同的条件,并且可以根据需要显示和/或记录。

PHP 生成的每个错误都包含一个类型。此处列出了这些错误类型,以及对其行为和成因的简短描述。

使用 PHP 处理错误

如果没有设置错误处理程序,则 PHP 将根据其配置处理发生的任何错误。哪些错误会被报告,哪些会被忽略,由 error_reporting php.ini 指令控制,或者通过调用 error_reporting() 在运行时控制。但是,强烈建议设置配置指令,因为某些错误可能在脚本执行开始之前发生。

在开发环境中,应始终将 error_reporting 设置为 E_ALL,因为您需要了解并修复 PHP 提出的问题。在生产环境中,您可能希望将其设置为较低的详细级别,例如 E_ALL & ~E_NOTICE & ~E_DEPRECATED,但在许多情况下 E_ALL 也适用,因为它可以提供潜在问题的早期预警。

PHP 对这些错误的处理取决于另外两个 php.ini 指令。display_errors 控制错误是否作为脚本输出的一部分显示。在生产环境中,这应始终禁用,因为它可能包含机密信息,例如数据库密码,但在开发中启用通常很有用,因为它确保立即报告问题。

除了显示错误外,当启用 log_errors 指令时,PHP 还可以记录错误。这会将任何错误记录到由 error_log 定义的文件或 syslog 中。这在生产环境中非常有用,因为您可以记录发生的错误,然后根据这些错误生成报告。

用户错误处理程序

如果 PHP 的默认错误处理不足,您还可以使用自己的自定义错误处理程序来处理许多类型的错误,方法是使用 set_error_handler() 安装它。虽然某些错误类型无法以此方式处理,但可以处理的错误可以按照您的脚本认为合适的方式处理:例如,这可以用来向用户显示自定义错误页面,然后比通过日志更直接地报告,例如通过发送电子邮件。

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top