我们有一个巨大的代码库,在访问未定义的变量或数组键时,我们忽略了 php7 的通知。
例如
$somethingThatMayNotExist = $_REQUEST['somethingThatMayNotExist']
PHP8 现在会抛出错误。我知道我们应该始终检查键是否存在,或者变量是否已定义。但是代码库太大了,我们的单元测试覆盖率很差,我宁愿切换到 php8 并将这些错误作为通知处理(并将值设置为 null)。
这可以使用某种自定义错误处理程序吗?如果是这样,该怎么做?
根据 @KikoSoftware 的评论,我通过创建自定义错误处理程序解决了这个问题,并通过记录和合并它们进行重构来忽略这些类型的错误。
set_error_handler(array($this,'handleError'))
public function handleError($code, $message, $file, $line)
{
if(str_contains($message, 'whatever errormessage should be ignored') {
// TODO: send mail or log error somewhere for further refactoring
return null; // php7.4-like behaviour
}
parent::handleError($code, $message, $file, $line);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)