PHP 显示错误,尽管 display_errors 设置为 0

PHP showing errors, although display_errors is set to 0

提问人:Bero_zg 提问时间:6/21/2016 最后编辑:Bero_zg 更新时间:6/23/2016 访问量:355

问:

我挣扎了一个小时,试图弄清楚为什么 PHP 显示错误,尽管我在我的代码中如此乞求它们:

error_reporting(E_ALL);
ini_set('log_errors', 1);
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);

我想记录所有PHP错误,但我不想向用户显示任何错误,因为这是生产代码。

在PHP文件的末尾,我检查ini是否设置正确,并按预期返回。 我还检查了我的整个项目,并且没有其他 ini_set() 函数调用,它可以覆盖此设置。ini_get('display_errors')0

为什么我仍然向用户显示未定义的变量?

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Notice</p>
<p>Message:  Undefined variable: fb_admin</p>
<p>Filename: fb_app/header.php</p>
<p>Line Number: 173</p>

</div>

这越来越令人沮丧,所以感谢您的任何帮助:)

编辑:当然,我知道我应该修复这个错误,但这不是重点。关键是如何正确处理其他类似的、不可预测的错误。我想记录它们,但不显示它们。

PHP 报告 ini-set 错误抑制

评论

1赞 Arsh Singh 6/21/2016
与其隐藏错误,不如修复错误,而是说你,fb_admin变量未定义,你应该使用 fb_admin = null;作为默认值,并在需要时更改该值。
0赞 tkausl 6/21/2016
这看起来不像是原生 php 错误,可能是您正在使用的某个库打印了这些错误。
0赞 Muhammad Sumon Molla Selim 6/21/2016
为什么要将error_reporting设置为?它将显示所有错误。E_ALL
0赞 Andy 6/21/2016
@MuhammadSumonMollaSelim因为他想记录所有错误,但不显示它们。
1赞 Andy 6/21/2016
您似乎在某处定义了一个自定义错误处理程序。请向我们展示该代码。set_error_handler

答: 暂无答案