为什么这个if语句总是运行?

时间:2015-12-10 09:44:35

标签: php mysql

var cache = $("ol.controls a");
$("ul.years li").eq(cache.index(cache.filter(".active")).addClass("active");

我希望只有当$ unitWeight大于0时才能运行此语句。无论如何都会运行,我收到此错误。

"警告:在"

中除以零

5 个答案:

答案 0 :(得分:2)

尝试对变量进行类型转换

$unitWeight = (int) "0";

var_dump(($unitWeight));

或使用abs()intval()

$unitWeight = "0";

var_dump(abs($unitWeight));

答案 1 :(得分:1)

使用大于(>)

if ($unitWeight > 0) 
  {
    $saleableUnits = ($sumQty/$unitWeight);
    $unitCost      = ($sumCost/$saleableUnits);
  }

答案 2 :(得分:1)

使用方法 empty()来检查这样的代码,因为 empty()也检查$unitWeight是否设置在某处

if ( !empty($unitWeight) ){

$saleableUnits = ($sumQty/$unitWeight);
$unitCost = ($sumCost/$saleableUnits);

}

答案 3 :(得分:0)

如果您希望语句仅在$unitWeight为>时运行0,那就是你应该使用的。

见下文:

  if (intval($unitWeight) > 0){
    $saleableUnits = ($sumQty/$unitWeight);
    $unitCost      = ($sumCost/$saleableUnits);
  }

使用intval()获取intval — Get the integer value of a variable,如官方文档中所述here

请记住,清理输入并确保只接受数值是非常有益和必要的。

答案 4 :(得分:0)

如上一个答案尝试使用

if ($unitWeight > 0){
    $saleableUnits = ($sumQty/$unitWeight);
    $unitCost      = ($sumCost/$saleableUnits);
}

最重要的可能是$unitWeight必须大于0我认为,这就是为什么它总是进入if条件。

在if条件之前

尝试打印$unitWeight变量的值,以便您可以找到变量内部的内容以及它进入条件的原因。

然后最后同样打印变量$sumQty$sumCost

可能是这些变量中的任何一个具有值0,这就是为什么它显示您提到的错误