【发布时间】:2013-04-25 21:01:18
【问题描述】:
我注意到在运行时使用 php 的 error_reporting 函数似乎会导致它报告以前发生的通知。
这是设计使然,还是有办法阻止它?
$er = error_reporting(E_ERROR);
$m = new MyClass();
$m->myFunction();
//error_reporting($er);
在上述代码中,myFunction() 调用引发警告和/或“严格”通知的第 3 方代码。如果最后一行像上面一样被注释掉,则不会返回那些警告和通知。但是,如果我取消注释该行以便错误报告可以恢复正常,则会在此时报告严格通知,而不是警告。
更新
我认为这不是我最初认为的 error_reporting 的问题,而是我正在使用的第 3 方代码 Pear 的问题。
【问题讨论】:
-
error_reporting 不是这样工作的。很可能,您稍后也会使用该代码。
-
@wrikken - 不太清楚你的意思。
error_reporting函数确实应该设置运行时显示和不显示的错误类型 -
是的,但它不会“保存”错误以备后用,这就是我的意思。如果通过取消注释该行得到错误,则错误发生在 该行之后。
-
请注意,您的困惑很可能是:(1)将错误报告设置为低(2)包括函数定义/类/等(3)将错误报告设置为高(4)现在使用这些函数和类报告错误,
include-ing 他们低错误报告对调用时触发的错误报告没有任何作用。 -
我理解您为什么认为错误随后会发生,但这些是唯一的代码行。没有什么可以触发错误的了。也许 myFunction 调用的第 3 方代码正在异步运行,直到稍后才真正执行……尽管我对此表示怀疑。
标签: php error-suppression