PHP5禁用严格标准错误

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

有人能帮忙吗?

363534 次浏览

没有错误。

error_reporting(0);

或者只是不严格

error_reporting(E_ALL ^ E_STRICT);

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

error_reporting(-1);

您想禁用错误报告,还是仅仅防止用户看到它?记录错误通常是一个好主意,即使是在生产站点上。

# 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指令来指定您希望错误发生的确切位置。

如果没有在 php.ini 中设置,则 Error _ Reporting 错误报告标志的默认值为 E _ ALL & ~ E _ NOTICE。 但是在一些安装(特别是针对开发环境的安装)中,将 严格设置为值 这面旗(这是 在开发过程中的推荐价值)。在某些情况下,特别是当您想要运行一些开源项目时,这些项目是在 PHP 5.3时代之前开发的,并且还没有使用 PHP 5.3定义的最佳实践进行更新,在您的开发环境中,您可能会遇到一些您正在获得的消息。应对这种情况的最佳方法是,在 Php.ini密码中仅将 你好设置为 Error _ Reporting 错误报告标志的值(可能在前端控制器中,比如 web-root 中的 index.php,如下所示:

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

以上解答均正确。但是,当我们谈论一个普通的 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)

在 php.ini 集合中:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

WordPress

如果您在 Wordpress 环境中工作,Wordpress 会在函数 wp_debug_mode()中设置文件 wp-include/load.php 中的错误级别。因此,在调用这个函数之后(在未签入 git 的文件中,这只是开发) ,必须更改级别,或者直接修改 error_reporting()调用

我没有看到一个清晰的、适合于生产软件的答案,所以这里有一个:

/*
* Get current error_reporting value,
* so that we don't lose preferences set in php.ini and .htaccess
* and accidently reenable message types disabled in those.
*
* If you want to disable e.g. E_STRICT on a global level,
* use php.ini (or .htaccess for folder-level)
*/
$old_error_reporting = error_reporting();


/*
* Disable E_STRICT on top of current error_reporting.
*
* Note: do NOT use ^ for disabling error message types,
* as ^ will re-ENABLE the message type if it happens to be disabled already!
*/
error_reporting($old_error_reporting & ~E_STRICT);




// code that should not emit E_STRICT messages goes here




/*
* Optional, depending on if/what code comes after.
* Restore old settings.
*/
error_reporting($old_error_reporting);