在 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 警告:test.php 第 10 行除以零
PHP 堆栈跟踪
PHP 1. {main}() test.php:0
警告:test.php 第 10 行除以零
调用堆栈
0.0740 417272 1. {main}() test.php:0
# php 8
$ php test.php
捕获了 intdiv() 的除零错误
捕获了 / 的除零错误