0

在我的 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 的 Master 值为 Off,而本地值设置为 On(如预期的那样)。尽管如此,我还是没有收到任何错误消息。

将我的 php.ini 设置更改为 display_errors = On 可以让我解决这个问题,但不应该永远是一个解决方案。

有什么提示吗?

谢谢和brgds大卫

4

1 回答 1

2

我认为您的第二个示例失败的原因是它实际上是一个解析错误。

执行代码时,PHP 必须首先解析和编译它要执行的整个文件,然后才能运行它。如果在解析过程中出现问题,即使问题出现在文件末尾,也不会执行文件的任何代码——所以你的ini_set()anderror_reporting()语句也不会执行。

如果错误代码与所述语句位于同一文件中,则您无能为力。如果它位于与includeor一起使用的另一个文件中require,请确保在设置新的错误报告值之后进行包含调用。至少这对我来说适用于 PHP >= 5.4。

于 2014-01-05T18:43:50.027 回答