在 php 7 中使用算术运算符 / 不会抛出异常,而在 php 8 中则会抛出异常。
<?php
try {
echo intdiv(2, 0);
} catch (DivisionByZeroError $e) {
echo "Caught DivisionByZeroError!\n";
}
try {
echo (2 / 0);
} catch (DivisionByZeroError $e) {
echo "Caught DivisionByZeroError!\n";
}
?>
# php 7
$ php test.php
捕获 intdiv() 的除零错误
PHP Warning: test.php 第 10 行中出现除零错误
PHP 堆栈跟踪
PHP 1. {main}() test.php:0
Warning: test.php 第 10 行中出现除零错误
调用堆栈
0.0740 417272 1. {main}() test.php:0
# php 8
$ php test.php
捕获 intdiv() 的除零错误
捕获 / 的除零错误