为什么PHP会强制显示错误,无论你告诉它禁用什么?
我试过了
error_reporting(0);
ini_set('display_errors', 0);
没有运气。
答案 0 :(得分: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文件中全部禁止它们,但这取决于系统配置。
务实地,不要写出语法错误的文件:)
答案 1 :(得分:3)
为防止错误显示,您可以
答案 2 :(得分:1)
使用phpinfo查找已加载的php.ini并对其进行编辑以隐藏错误。它会覆盖您在脚本中添加的内容。
答案 3 :(得分:1)
脚本中的任何位置都使用set_error_handler()
吗?这会覆盖error_reporting(0)
。
答案 4 :(得分:0)
使用log_errors记录它们而不是显示
答案 5 :(得分:0)
如果使用php_admin_value在Apache中指定了该设置,则无法在.htaccess或运行时更改。 请参阅:http://docs.php.net/configuration.changes
答案 6 :(得分:0)
务实地,不要写出语法错误的文件:)
要确保文件中没有语法错误,请运行以下命令:
php -l YOUR_FILE_HERE.php
这将输出如下内容:
PHP Parse error: syntax error, unexpected '}' in Connection.class.php on line 31
答案 7 :(得分:0)
只需在 index.php 文件中添加以下代码:
ini_set('display_errors', False);