0

如果我得到一个除以零,我怎么能抓住它,只是回显一个错误或类似的东西?

这是有问题的代码行:

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

3 回答 3

1

只需检查它$row['p1']不为零。

如果为零,请执行其他操作(例如报告错误)

于 2013-08-11T06:27:35.980 回答
-1

PHP 中除以零返回false并显示警告消息。您可以通过附加@到有问题的表达式来消除警告消息。

$foo = @(10 / 0);

if ($foo === false) {
   // Division by zero
}

不过,首先尝试避免除以零会更干净。

抑制警告消息通常表明您应该采取不同的做法。例如,在将整数用于除法之前,只需检查整数是否为 0。

于 2013-08-11T06:28:55.950 回答
-2

如果 $row['p1'] 的值为 0,那么您将得到除以零的错误。如果你想捕捉它而不在 UI 中显示丑陋的异常,你可以这样写。

try {
    $percent = round(100.0*($row['p2']/$row['p1']-1));
} catch() {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

您现在将收到确切的错误消息。最好使用条件 if(0 !== $row['p1'])。

于 2013-08-11T06:34:41.020 回答