PHP运行报Uncaught DivisionByZeroError除零错误该如何解决?
错误产生原因
该错误属于PHP运行时的除零异常,直接原因是你代码中$plates_per_kg变量的值为0,执行1000/$plates_per_kg运算时触发了除以0的非法操作。$plates_per_kg从查询结果集的$row['s_pkg']字段取值,通常是因为对应数据库记录的s_pkg字段值为0,或是字段读取异常导致变量被赋值为0。
修复方案
核心逻辑是运算前增加参数合法性校验,避免0值参与除法运算,参考修复代码如下:
$total_plates = $row['s_tps']; $total_a_kg = $row['s_kg']; $plates_per_kg = $row['s_pkg']; $remaing_kg = 0; // 先校验除数合法性 if (!empty($plates_per_kg) && is_numeric($plates_per_kg) && $plates_per_kg != 0) { $remaing_kg = (1000 / $plates_per_kg) * $total_plates; } else { // 可自定义除数为0时的兜底逻辑,比如赋值默认值、抛出业务提示等 echo "单位重量对应板材数量参数异常,无法计算剩余重量"; } echo $remaing_kg;
额外优化建议:
- 可以增加数据库查询层的校验,查询时过滤
s_pkg为0的无效记录,从数据源层面避免异常值传入业务逻辑。 - 若业务规则允许
s_pkg为0,可根据实际业务场景调整兜底逻辑的处理规则。
内容的提问来源于stack exchange,提问作者Mr.Geeky
相关产品推荐
相关产品推荐

