无法将错误处理程序设置为在PHP-8中引发ErrorException



我的脚本有以下代码:

set_error_handler(function(int $severity, string $message, string $filename, int $lineNumber) : void {
throw new ErrorException($message, 0, $severity, $filename, $lineNumber);
});
function test() : string {
return $test;
}
test();

在PHP 7.3.11(macOS 10.15.7(上运行该脚本可以正常工作,并显示以下内容:

致命错误:未捕获错误异常:未定义变量:中的测试…/index.php:9堆栈跟踪:

#0/index.php(9(:{closure}(8,"Undefined varia…","…",9,Array(

#1/index.php(12(:test((

#2{main}

Next TypeError:test((的返回值必须为字符串类型,在中返回null/index.php:9堆栈跟踪:

#0/index.php(12(:test((

#1{main}已抛出/第9行的index.php

但在PHP-8(php:8.0.0rc1-apachedocker图像(上,它被卡在循环中,什么也不显示。

通过移除set_error_handler

警告:中未定义的变量$test/第9行的index.php

致命错误:未捕获的TypeError:test((:返回值必须是字符串类型,在中返回null/index.php:9

堆栈跟踪:

#0/index.php(12(:test((

#1{main}扔进去/第9行的index.php

这是一个错误,还是在新版本中发生了更改?我在PHP CLI btw.上尝试过

正如评论中所指出的,这确实是一个错误,并已在第二个候选版本(PHP-8.0 RC2(中得到解决。

相关内容

  • 没有找到相关文章

最新更新