var cache = $("ol.controls a");
$("ul.years li").eq(cache.index(cache.filter(".active")).addClass("active");
我希望只有当$ unitWeight大于0时才能运行此语句。无论如何都会运行,我收到此错误。
"警告:在"
中除以零答案 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条件。
尝试打印$unitWeight
变量的值,以便您可以找到变量内部的内容以及它进入条件的原因。
然后最后同样打印变量$sumQty
和$sumCost
。
可能是这些变量中的任何一个具有值0
,这就是为什么它显示您提到的错误