简体   繁体   English

警告:循环除以零

[英]Warning: Division by zero in loop

I have this code: 我有以下代码:

for ($y = 0; $y < $numRows; $y++) {
    for ($i = 0; $i < $numRows; $i++) {
        ${'contaH' . $i}[]=${'arrHoriz' . $i}[$y]/$arr[$y];
    }
}

echo $contaH0[0]."\n";

that output is: 该输出是:

Warning: Division by zero in C:\Users\xx\VertrigoServ\www\AHP\new\demo.php on line 66
Warning: Division by zero in C:\Users\xx\VertrigoServ\www\AHP\new\demo.php on line 66
Warning: Division by zero in C:\Users\xx\VertrigoServ\www\AHP\new\demo.php on line 66
Warning: Division by zero in C:\Users\xx\VertrigoServ\www\AHP\new\demo.php on line 66
0.300618921309 

but if i change this line: 但是如果我改变这一行:

${'contaH' . $i}[]=${'arrHoriz' . $i}[$y]/$arr[$y];

to

${'contaH' . $i}[]=${'arrHoriz' . $i}[$y]/$arr[0];

the output is: 输出为:

0.300618921309 

What is the reason of the warning in first code ? 第一个代码中出现警告的原因是什么?

$arr没有像您想象的那样有太多元素,或者有很多0或空元素。

The reason is that in your loop, $arr[$y] isn't always equal to 0. Somewhere in your array it's zero (or not defined). 原因是在循环中, $arr[$y]并不总是等于0。在数组中的某个位置为零(或未定义)。 You should do a check to see if your denominator is zero before doing any division and properly handle the case where it's zero. 在进行任何除法之前,应先检查分母是否为零,并正确处理分母为零的情况。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM