【问题标题】:Save and restore error_reporting level in PHP在 PHP 中保存和恢复 error_reporting 级别
【发布时间】:2012-04-16 06:47:39
【问题描述】:

error_reporting 函数有一个奇怪的问题。

我想保存当前的 error_reporting 级别,禁用几行错误报告,然后将其恢复。 所以我有以下代码:

$oldErrorReporting = error_reporting();
error_reporting(0);
//Some code, that will generate warning, or error, that I don't want to show
error_reporting(oldErrorReporting);

所以,如果我删除最后一行,就没有错误,一切正常。但是,如果我添加最后一行,则会在关闭错误报告时在代码中发生错误。 那么,有没有办法清除error_reporting级别为0时发生的那些错误,并恢复默认的错误报告级别,而不出现那些关闭错误报告时发生的错误?

【问题讨论】:

  • 这真的是你的代码吗?那么你错过了$。否则,你知道错误抑制运算符@吗?另外,你有什么代码会触发错误?

标签: php error-reporting


【解决方案1】:

也许这只是一个错字(如果是这样,请不要为问题重写代码,只需复制和粘贴(并删除不必要的行)),但您忘记了$-登录最后一行:

error_reporting($oldErrorReporting);

【讨论】:

  • 不幸的是,当我在我的问题中粘贴代码时,它只是输入。
【解决方案2】:

什么样的代码会产生警告?如果是函数尝试而不是降低调试级别,以抑制警告本身 - 在函数名称前写“@”

看看:

Suppress error with @ operator in PHP

【讨论】:

  • 问题在于 imap_open 函数,如果与 imap 服务器的连接因任何原因失败,我想避免这种情况,并通知用户是否可以连接到 IMAP服务器与否,没有错误详细信息。我尝试使用@ 来防止错误,但它没有按预期工作。
  • 您介意在此处发布重要的代码部分吗?有几种方法可以处理错误...条件、异常等。
猜你喜欢
  • 2010-12-29
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 2018-04-12
相关资源
最近更新 更多