PHP警告:除以零

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)

S.A*_*S.A 8

您需要将表单处理代码包装在条件中,以便在首次打开页面时不会运行.像这样的东西:

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)

  • 请编辑更多信息。不建议使用仅代码和“尝试此”答案,因为它们不包含可搜索的内容,并且不解释为什么有人应该“尝试此”。 (2认同)

Ahm*_*Din 6

$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/