除零错误?

时间:2013-08-11 06:22:21

标签: php

如果我得到零除法,我怎么能抓住它,只是回应一个错误或那种性质的东西?

以下是有问题的代码行:

$percent = round(100.0*($row['p2']/$row['p1']-1));

3 个答案:

答案 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'])。