在 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() 發生除以零的錯誤
除法運算子 / 發生除以零的錯誤