概述
PHP 中有几种不同类型的错误报告功能。幸运的是,我们在PHP docs here 中有一个很好的解释。
我通常在下面的示例中使用这三个。让我们来看看这些。
分解文档
此函数设置错误报告级别。
error_reporting()
error_reporting() 函数将 error_reporting 指令设置为
运行。 PHP有很多级别的错误,使用这个函数设置
脚本持续时间(运行时)的级别。如果可选级别
未设置,error_reporting() 将只返回当前错误
报告级别。
第一个函数接受一个整数或命名常量的参数。如果 PHP 的未来版本发布新的错误级别,建议使用命名常量。这样,您将始终知道升级到较新版本的 PHP 后会发生什么。
下一个模式决定是否将错误打印到屏幕上。
ini_set('display_errors', 1)
这决定了是否应将错误作为一部分打印到屏幕上
输出或是否应该对用户隐藏。
最后一个处理在 PHP 启动过程中发生的错误。当您打开display_errors 时,它不会处理启动序列中发生的错误。这就是为什么很多时候人们不明白为什么即使他们打开了错误报告也没有看到错误的部分原因。
即使 display_errors 开启,PHP 启动过程中也会出现错误
序列不显示。强烈建议保留
display_startup_errors 关闭,调试除外。
这将告诉应用程序将错误记录到服务器。
ini_set('log_errors', 1);
告诉是否应该将脚本错误消息记录到服务器的
错误日志或 error_log。因此,此选项是特定于服务器的。
示例
要关闭文件中的错误报告,试试这个,
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(0);
要在文件中打开错误报告,试试这个,
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
回答
如果您想记录错误但不希望它们出现在屏幕上,那么您需要这样做,
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(E_ALL);
或者试试,
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
ini_set("log_errors", 1);
error_reporting(E_ALL);