在PHP中保存并恢复error_reporting级别

时间:2012-04-16 06:47:39

标签: php error-reporting

我对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时发生的错误,并恢复默认错误报告级别,而没有错误报告被关闭时发生的那些错误?

2 个答案:

答案 0 :(得分:1)

也许这只是一个错字(如果是这样,请重写问题的代码,只需复制和粘贴(并删除不成功的行)),但是你忘记了$ - 在你的最后一行签名:

error_reporting($oldErrorReporting);

答案 1 :(得分:1)

什么样的代码生成警告?如果是函数尝试而不是降低调试级别,则禁止警告本身 - 在函数名称前面写“@”

看看:

Suppress error with @ operator in PHP