如果我得到零除法,我怎么能抓住它,只是回应一个错误或那种性质的东西?
以下是有问题的代码行:
$percent = round(100.0*($row['p2']/$row['p1']-1));
答案 0 :(得分:1)
只需检查$row['p1']
是否为零。
如果为零则执行其他操作(例如报告错误)
答案 1 :(得分:-1)
在PHP中除以零返回false
并显示警告消息。您可以通过将@
附加到相关表达式来压制警告消息。
$foo = @(10 / 0);
if ($foo === false) {
// Division by zero
}
尽管如此,试图避免将零除以零会更加清晰。
抑制警告消息通常表明您应该采用不同的方式。例如,在将它用于除法之前,只需检查整数是否为0。
答案 2 :(得分:-2)
如果$ row ['p1']的值为0,那么你将得到除以零的错误。如果你想在UI中没有显示丑陋的Exception而抓住它,你可以这样写。
try {
$percent = round(100.0*($row['p2']/$row['p1']-1));
} catch() {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
您现在将收到确切的错误消息。最好使用条件if(0!== $ row ['p1'])。