在我的php.ini中,display_errors设置按标准设置为Off。通常我用
启动我的index.php文件ini_set('display_errors', 'On');
error_reporting(E_ALL & ~E_NOTICE);
这一切都能满足我的需求。
最近,错误报告不再起作用了。通知已被抛出,所以:
<?php echo $i ?>
发出通知“未定义常量”
<?php badbadbad ?>
只返回空白页而不是致命错误消息。
检查phpinfo()表明display_errors的主值为Off,而本地值设置为On(按预期方式)。然而,我无法收到任何错误消息。
更改我的display_errors = On的php.ini设置让我解决了这个问题,但不应该是永远的解决方案。
任何提示?
谢谢&amp; brgds 大卫
答案 0 :(得分:2)
我认为你的第二个例子失败的原因是它实际上是一个解析错误。
执行代码时,PHP必须首先解析并编译它将要执行的整个文件,然后才能运行它。如果在解析过程中出现问题,即使问题出现在文件的末尾,也不会执行任何文件的代码 - 因此,ini_set()
和error_reporting()
语句也不会执行。
如果错误的代码与所述语句在同一个文件中,那么您无能为力。如果它位于与include
或require
一起使用的另一个文件中,请确保在设置新的错误报告值后进行包含调用。至少这适用于PHP&gt; = 5.4。