PHP计算器中的除以0错误
我有一个简单的计算器,代码如下所示。我有3个输入和一个简单的方程式。但是,即使在单击“计算”按钮之前,我仍然会得到一个除以0的错误。我做错了什么PHP计算器中的除以0错误,php,Php,我有一个简单的计算器,代码如下所示。我有3个输入和一个简单的方程式。但是,即使在单击“计算”按钮之前,我仍然会得到一个除以0的错误。我做错了什么 <?php if (isset($_POST['valuea'])) $valuea = $_POST['valuea']; if (isset($_POST['valueb'])) $valueb = $_POST['valueb']; if (isset($_POST['valuec'])) $valuec = $_POST['valuec'
<?php
if (isset($_POST['valuea'])) $valuea = $_POST['valuea'];
if (isset($_POST['valueb'])) $valueb = $_POST['valueb'];
if (isset($_POST['valuec'])) $valuec = $_POST['valuec'];
$answer = ($valuea - $valueb) / $valuec;
echo <<<_END
<form method='post' action='/depreciation.php'>
<table border='0' width='500px' cellpadding='3' cellspacing='1' class="table">
<tr class="calcheading"><td colspan="2"><strong>Stright Line Depreciation</strong></td> </tr>
<tr class="calcrow"><td>Enter Cost:</td><td align="center"><input type='text' name='valuea' value="$valuea"/></td></tr>
<tr class="calcrow2"><td>End Salvage Value:</td><td align="center"><input type='text' name='valueb' value="$valueb"/></td></tr>
<tr class="calcrow"><td>Enter Estimated Life:</td><td align="center"><input type='text' name='valuec' value="$valuec"/></td></tr>
<tr class="submit"><td colspan="2"><input type='submit' value='Calculate'/></td></tr>
_END;
?>
<tr class="calcrow">
<td><i>The answer is:</td>
<td align="center"><input type="text" value="<?php echo round($answer)?>"></td></i>
</tr>
</table>
</form>
$answer正在页面加载时进行评估,正如dc2评论的那样,没有任何东西可以阻止您在加载页面后立即执行代码
$answer=$valuea-$valueb/$valuec
这会在加载页面时产生错误
要避免这种情况,您应该在进行除法之前检查0:
if($valuec == 0){
$answer = "TO INFINITY AND BEYOND";
}else{
//division here
}
因此,看起来您需要检查前三行代码,以查看是否设置了$\u POST[]变量,但不管它们是否设置,您都可以继续为$answer指定一个值。那么,如果没有设置这些值,会发生什么呢 我已经有一段时间没有编写PHP了,所以我可能错了,但是您可能希望在执行任何代码之前检查$\u POST[]中的数据,如果您发现没有设置任何内容,请将用户重定向到他们应该填写的表单 只有我的$0.02-如果有效,请告诉我。您可以更改
$answer = ($valuea - $valueb) / $valuec;
到
然后,您将避免使用空值的计算,我将利用它并在除法之前测试0,如下所示:
<?php
$valuea='';
$valueb='';
$valuec='';
$answer='';
if (isset($_POST['valuea'])) $valuea = $_POST['valuea'];
if (isset($_POST['valueb'])) $valueb = $_POST['valueb'];
if (isset($_POST['valuec'])) $valuec = $_POST['valuec'];
if(is_numeric($valuea) && is_numeric($valueb) && is_numeric($valuec))
{
if($valuec=='0')
{
$answer ="Error: Dividing by zero";
}
else{
$answer = ($valuea - $valueb) / $valuec;
}
}
echo <<<_END
<form method='post'>
<table border='0' width='500px' cellpadding='3' cellspacing='1' class="table">
<tr class="calcheading"><td colspan="2"><strong>Stright Line Depreciation</strong></td></tr>
<tr class="calcrow"><td>Enter Cost:</td><td align="center"><input type="text" name="valuea" value="$valuea" /></td></tr>
<tr class="calcrow2"><td>End Salvage Value:</td><td align="center"><input type="text" name="valueb" value="$valueb" /></td></tr>
<tr class="calcrow"><td>Enter Estimated Life:</td><td align="center"><input type="text" name="valuec" value="$valuec" /></td></tr>
<tr class="submit"><td colspan="2"><input type="submit" value="Calculate" /></td></tr>
_END;
?>
<tr class="calcrow"><td><em>The answer is:</em></td><td align="center"><input type="text" value="<?php echo is_numeric($answer)?round($answer):$answer; ?>"></td></tr>
</table>
</form>
这是一个和。JavaScript?你的JavaScript在哪里?你为什么想要PHP中的计算器?没有什么能阻止你的代码立即执行。。。你的问题是PHP,而不是Javascript。对,代码确实会执行,但我正在寻找一种方法,在页面加载时消除被零除的错误。
<?php
$valuea='';
$valueb='';
$valuec='';
$answer='';
if (isset($_POST['valuea'])) $valuea = $_POST['valuea'];
if (isset($_POST['valueb'])) $valueb = $_POST['valueb'];
if (isset($_POST['valuec'])) $valuec = $_POST['valuec'];
if(is_numeric($valuea) && is_numeric($valueb) && is_numeric($valuec))
{
if($valuec=='0')
{
$answer ="Error: Dividing by zero";
}
else{
$answer = ($valuea - $valueb) / $valuec;
}
}
echo <<<_END
<form method='post'>
<table border='0' width='500px' cellpadding='3' cellspacing='1' class="table">
<tr class="calcheading"><td colspan="2"><strong>Stright Line Depreciation</strong></td></tr>
<tr class="calcrow"><td>Enter Cost:</td><td align="center"><input type="text" name="valuea" value="$valuea" /></td></tr>
<tr class="calcrow2"><td>End Salvage Value:</td><td align="center"><input type="text" name="valueb" value="$valueb" /></td></tr>
<tr class="calcrow"><td>Enter Estimated Life:</td><td align="center"><input type="text" name="valuec" value="$valuec" /></td></tr>
<tr class="submit"><td colspan="2"><input type="submit" value="Calculate" /></td></tr>
_END;
?>
<tr class="calcrow"><td><em>The answer is:</em></td><td align="center"><input type="text" value="<?php echo is_numeric($answer)?round($answer):$answer; ?>"></td></tr>
</table>
</form>