Chi*_*hip 7 php divide-by-zero
我正在学习php并构建了一个基于表单的实验计算器(也使用html和POST方法),它将值返回给表.当我输入我的值并单击提交时,计算器正常工作,但是当我第一次运行代码时,我在最后一行上得到两个"除以零"错误.在这里或通过Google搜索时,我似乎无法找到合理的解决方案或解释.您可以向newb提供任何解释,我们将不胜感激.
<?php
error_reporting(E_ALL ^ E_NOTICE);
//calculate the difference in price
$itemQty = $_POST['num1'];
$itemCost = $_POST['num2'];
$itemSale = $_POST['num3'];
$shipMat = $_POST['num4'];
$diffPrice = $itemSale - $itemCost;
$actual = ($diffPrice - $shipMat) * $itemQty;
$diffPricePercent = (($actual * 100) / $itemCost) / $itemQty ;
?>
Run Code Online (Sandbox Code Playgroud)
您需要将表单处理代码包装在条件中,以便在首次打开页面时不会运行.像这样的东西:
if($_POST['num1'] > 0 && $_POST['num2'] > 0 && $_POST['num3'] > 0 && $_POST['num4'] > 0){
$itemQty = $_POST['num1'];
$itemCost = $_POST['num2'];
$itemSale = $_POST['num3'];
$shipMat = $_POST['num4'];
$diffPrice = $itemSale - $itemCost;
$actual = ($diffPrice - $shipMat) * $itemQty;
$diffPricePercent = (($actual * 100) / $itemCost) / $itemQty ;
}
Run Code Online (Sandbox Code Playgroud)
小智 7
尝试使用
$var = @($val1 / $val2);
Run Code Online (Sandbox Code Playgroud)
$diffPricePercent = (($actual * 100) / $itemCost) / $itemQty ;
Run Code Online (Sandbox Code Playgroud)
$ itemCost和$ itemQty返回null或零,检查它们来自用户输入的代码
还要检查它是否不是空数据添加:
if(!empty($_POST['num1'])){
itemQty = $_POST['num1'];
}
Run Code Online (Sandbox Code Playgroud)
并且您可以在变量中使用它之前检查此链接以进行后验证
https://www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/
| 归档时间: |
|
| 查看次数: |
87273 次 |
| 最近记录: |