PHP出现弃用警告时如何触发错误?

问题描述 投票:0回答:1

我有一个库,直到有人在 GitHub 上创建了一个问题,我才注意到它发出了弃用警告。我已启用:

error_reporting(E_ALL);

并修复了所有弃用警告。但问题是:如果有弃用警告,您能否使代码始终失败(我考虑单元测试)?我正在考虑使用正则表达式添加

ob_
缓冲来测试是否没有警告并抛出错误。但这需要一些看起来不太漂亮的代码。

是否有一种简单的方法来切换某些选项以使警告成为真正的错误?那么单元测试没有通过并且代码总是失败?我希望我的代码能够面向未来,并且当 PHP 决定用真正的错误替换弃用时不会失败。

php runtime-error deprecation-warning
1个回答
0
投票

是的,您可以使用 set_error_handler 函数让 PHP 将所有错误(包括 E_DEPRECATED 和 E_USER_DEPRECATED)视为异常。此函数允许您定义自定义错误处理函数,每当发生错误时都会调用该函数

set_error_handler(function($errno, $errstr, $errfile, $errline) {
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
});

// Your code here
© www.soinside.com 2019 - 2024. All rights reserved.