11

无论您告诉它禁用什么,PHP 都会强制显示错误的一些原因是什么?

我试过了

error_reporting(0);
ini_set('display_errors', 0); 

没有运气。

4

8 回答 8

15

请注意http://uk.php.net/error_reporting手册中的警告:

大多数 E_STRICT 错误是在编译时评估的,因此此类错误不会在增强 error_reporting 以包含 E_STRICT 错误的文件中报告(反之亦然)。

如果您的底层系统配置为报告 E_STRICT 错误,则这些错误可能会在您的代码被考虑之前就被输出。不要忘记,error_reporting/ini_set 是运行时评估,在“运行前”阶段执行的任何操作都不会看到它们的效果。


根据您的评论,您的错误是...

解析错误:语法错误,意外的 T_VARIABLE,需要 ',' 或 ';' 在第 11 行的 /usr/home/REDACTED/public_html/dev.php

然后同样的一般概念适用。您的代码永远不会运行,因为它在语法上无效(您忘记了“;”)。因此,永远不会遇到您更改错误报告的情况。

解决此问题需要更改系统级错误报告。例如,在 Apache 上,您可以放置​​...

php_value error_reporting 0

在 .htaccess 文件中将它们全部抑制,但这取决于系统配置。

务实地,不要写有语法错误的文件:)

于 2008-09-16T23:26:17.067 回答
3

为防止显示错误,您可以

  • 写入 .htaccess: php_flag display_errors 0
  • 将代码拆分到单独的模块中,其中主(父)PHP 文件仅设置 error_logging,然后 include() 其他文件。
于 2008-09-18T13:06:59.427 回答
1

使用phpinfo查找加载的 php.ini 并对其进行编辑以隐藏错误。它会覆盖您在脚本中输入的内容。

于 2011-01-02T15:52:17.523 回答
1

set_error_handler()在脚本中的任何地方使用?这会覆盖error_reporting(0).

于 2013-06-10T08:34:37.190 回答
0

使用log_errors来记录而不是显示它们。

于 2008-09-16T23:33:46.567 回答
0

如果在 Apache 中使用php_admin_value指定设置,则无法在 .htaccess 或运行时更改。

请参阅:如何更改配置设置

于 2008-09-18T21:25:17.263 回答
0

务实地,不要写有语法错误的文件:)

为确保文件中没有语法错误,请运行以下命令:

php -l YOUR_FILE_HERE.php

这将输出如下内容:

PHP Parse error:  syntax error, unexpected '}' in Connection.class.php on line 31
于 2015-12-07T15:50:45.263 回答
0

只需在index.php文件中添加以下代码:

ini_set('display_errors', False);
于 2017-12-16T10:16:58.697 回答