所以我正在尝试
ini_set('display_errors', 'Off');
error_reporting(0);
在<?php
下方,但这似乎并没有停止显示它们。所以我转到php.ini
并转到display_errors
,看到它设置为Off
。但它仍然表明。
所以我去了phpinfo()
和display_errors
以及display_startup_errors
都关闭了。此外html_errors
已关闭。我不确定这是否会有所帮助,但它会将error_reporting
设置为-10241
。有任何想法吗?
答案 0 :(得分:2)
请勿更改错误报告的值以解决问题。如果display_errors关闭,则不会独立于error_reporting设置显示错误。这样您就不会显示错误,但仍可以记录它们。
以下内容应该有效:
ini_set('display_errors', 'Off');
如果它不起作用,可能是您的服务器配置不允许您从PHP脚本更改设置。 ini_set()失败时返回FALSE。首先,您应该检查该调用返回的值。确保禁用的PHP函数(php.ini中的disable_functions)中没有列出ini_set。
如果你问自己为什么错误仍在显示,即使在php.ini中display_errors为Off,你可以在脚本执行期间检查display_errors的实际值:
ini_get('display_errors')
请注意,在Apache主机配置和.htaccess文件中也可以更改PHP设置。因此,请检查是否有启用display_errors的htacces。像这样:
php_flag display_errors on
答案 1 :(得分:1)
尝试使用:
ini_set('display_errors', 0);
ini_set('display_errors', false);
答案 2 :(得分:1)
您没有描述错误是什么,因此您的Web服务器(Apache,nginx等)可能会引发错误,而不是PHP。
如果是PHP,请确保您正在编辑phpinfo.php中标识的正确php.ini。请记住,如果您编辑php.ini,则需要重新启动PHP进程(例如,在某些* nix系统上:service php-fpm restart。您的确切命令可能会有所不同。)
如果它在你的php.ini中关闭,我的猜测是它被覆盖在其他地方 - 要么在后面的脚本中(&#39; grep&#34; ini_set&#34; /path/to/project/*.php'会找到它)。此外,PHP Manual指出如果脚本有致命错误,如果存在致命错误则不适用:
虽然可以在运行时设置display_errors(使用ini_set()),但是 如果脚本有致命错误,则不会有任何影响。这是因为 期望的运行时操作不会被执行。