php函数检查数字是否可被0整除

时间:2014-04-11 20:51:44

标签: php math

我已经检查了一堆关于stackoverflow和谷歌文章的帖子,但没有一个能够回答我的问题。这是我的代码(我简化了它而不是发布我的代码)

$first = 10;
$second = 0; //comes from db row count
$total = !is_int($first/$second) ? 0 : $first/$second;

问题是,当我这样做时,我一直得到零除错误。我有一堆,$ second不总是0,它可以是任何数字。但它确实出现0,因为行计数为任何查询它出现为0.是否有一种安全的方法来检查$ first是否可以除以$ second而不给出错误?我在!is_int之前尝试过@并且只是打破了所有其他语句。

4 个答案:

答案 0 :(得分:5)

试试这个:

$total = ($second == 0) ? 0 : $first / $second;

答案 1 :(得分:1)

你不能除以0它是未定义的。如果你想用0来处理除法,只需检查除数是否等于0.或者更安全的方法,如果它是一个正整数,则查看:

$first = 10;
$dbRowCount = dbFunction();
if ($dbRowCount > 0) {
    $total = $first / $dbRowCount;
} else {
    //Error handling
}

答案 2 :(得分:0)

三元结构可以接受多个条件。它会像任何其他if条件一样工作,如果第一个条件失败,它将不会尝试第二个条件。

所以,只需添加它

$total = ($first!==0 && $second!==0 && !is_int($first/$second)) ? 0 : $first/$second;

答案 3 :(得分:0)

您可能想尝试检查$ Second变量是否为0。

类似的东西:

$First = 10;
$Second = $row['table_column'];

if ($Second == 0) {
echo "Oops this will be an error";
}
else
$First/$second = $me;