PHP 5禁用严格的标准错误

时间:2009-08-08 14:06:47

标签: php strict

我需要在顶部设置我的PHP脚本,以禁用严格标准的错误报告。

有人可以帮忙吗?

7 个答案:

答案 0 :(得分:182)

您要禁用错误报告,还是仅阻止用户看到它?即使在生产现场,记录错误通常也是一个好主意。

# in your PHP code:
ini_set('display_errors', '0');     # don't show any errors...
error_reporting(E_ALL | E_STRICT);  # ...but do log them

它们将被记录到您的标准系统日志中,或使用error_log指令准确指定您希望错误发生的位置。

答案 1 :(得分:90)

没有错误。

error_reporting(0);

或者只是不严格

error_reporting(E_ALL ^ E_STRICT);

如果您想再次显示所有错误,请使用

error_reporting(-1);

答案 2 :(得分:31)

以上所有解决方案都是正确的。但是,当我们谈论一个普通的PHP应用程序时,它们必须包含在每个页面中,它需要它。解决此问题的方法是通过根文件夹中的.htaccess。 只是为了隐藏错误。 [将以下一行放在文件中]

php_flag display_errors off

或者

php_value display_errors 0

接下来,设置错误报告

php_value error_reporting 30719

如果您想知道值30719是如何来的,E_ALL(32767),E_STRICT(2048)实际上是常数,它保存数值和(32767 - 2048 = 30719

答案 3 :(得分:9)

error_reporting 标志的默认值为 E_ALL& ~E_NOTICE 如果没有在php.ini中设置。 但在某些安装中(特别是针对开发环境的安装)有 E_ALL | E_STRICT 设置为此标志的值(这是在开发期间推荐的值)。在某些情况下,特别是当您想要运行一些开源项目时,这些项目是在PHP 5.3时代之前开发的,并且尚未使用PHP 5.3定义的最佳实践进行更新,在您的开发环境中,您可能会遇到一些问题。像你这样的消息。解决这种情况的最佳方法是在 php.ini 或其中设置 E_ALL 作为 error_reporting 标记的值代码(可能在前端控制器中,如web-root中的index.php,如下所示:

if(defined('E_STRICT')){
    error_reporting(E_ALL);
}

答案 4 :(得分:8)

在php.ini中设置:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

答案 5 :(得分:4)

<强> WordPress的

如果您在wordpress环境中工作,Wordpress会在函数wp_debug_mode()中的文件wp-includes / load.php中设置错误级别。因此,您必须在调用此函数后更改级别(在未检入git的文件中以便仅进行开发),或者直接修改error_reporting()调用

答案 6 :(得分:2)

我没有看到一个干净且适合生产就绪软件的答案,所以在这里:

models.IntegerField(max, min, onInvalidInput)