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

我努力了

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

没有运气。

有帮助吗?

解决方案

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

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

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


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

解析错误:语法错误,出乎意料的t_variable,期望','或';'在/usr/home/redacted/public_html/dev.php中

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

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

php_value 错误报告 0

在 .htaccess 文件中以抑制所有这些,但这取决于系统配置。

实际上,不要编写有语法错误的文件:)

其他提示

为了防止显示错误,您可以

  • 在.htaccess中写入: php_flag 显示错误 0
  • 将代码分开在单独的模块中,其中主(父)php文件仅设置error_logging,然后包括()其他文件。

使用 php信息 找到加载的 php.ini 并编辑它以隐藏错误。它会覆盖您在脚本中放入的内容。

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

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

如果该设置是在 Apache 中使用 php_admin_value 指定的,则无法在 .htaccess 或运行时更改该设置。看: http://docs.php.net/configuration.changes

实际上,不要编写有语法错误的文件:)

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

php -l YOUR_FILE_HERE.php

这将输出类似这样的内容:

PHP Parse error:  syntax error, unexpected '}' in Connection.class.php on line 31

只需将以下代码添加到您的 索引.php 文件:

ini_set('display_errors', False);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top