PHP相对较新,我第3天左右看着它。我一直在尝试创建一个简单的PHP计算器,它具有加法,减法,乘法和除法。想尝试使用它作为起点:Simple PHP calculator但我一直遇到问题让它正常工作。
// HTML代码
<form action="svar_vcalc.php" method="post">
<p>Tall 1:<br/>
<input type="text" id="tall1" name="tall1"></p>
<p>Tall 2:<br/>
<input type="text" id="tall2" name="tall2"></p>
<input type="radio" name="gruppe1" id="plus" value="plus" checked="true">+
<input type="radio" name="gruppe1" id="minus" value="minus">-
<input type="radio" name="gruppe1" id="multi" value="multi">*
<input type="radio" name="gruppe1" id="divisjon" value="divisjon">/
<p></p>
<button type="submit" name="svar" id="svar" value="svar">Kalkuler</button>
</form>
// PHP代码
<?php
$tall1 = $_POST['tall1'];
$tall2 = $_POST['tall2'];
$operator = $_POST["gruppe1"];
switch($operator)
{
case "plus":
echo "Svaret er: " . $tall1 + $tall2;
break;
case "minus":
echo "Svaret er: " . $tall1 - $tall2;
break;
case "multi":
echo "Svaret er: " . $tall1 * $tall2;
break;
case "divisjon":
echo "Svaret er: " . $tall1 / $tall2;
break;
}
?>
现在问题。这似乎是前两种情况:“加”和“减”忽略$ tall1,纯粹只使用$ tall2。对于这些情况,文本字符串也不显示。另一方面,最后两个案例做了他们应该做的事情并正常出现。
实施例。 输入1作为$ tall1,2输入$ tall2将得到以下结果:
此时我不知道为什么会发生这种情况,并且想知道其他人是否会有解决方案?我知道使用if,elseif,else将是一个可能的解决方案,通过重新编写代码的PHP端,但我宁愿坚持切换,案例。
答案 0 :(得分:3)
这是因为执行的顺序。在第一种情况下,您的代码首先将$ tall1连接到字符串“Svaret er:”。然后它增加了$ tall2。 您可以通过用括号括起数学部分来修复它。
switch($operator)
{
case "plus":
echo "Svaret er: " . ($tall1 + $tall2);
break;
case "minus":
echo "Svaret er: " . ($tall1 - $tall2);
break;
case "multi":
echo "Svaret er: " . ($tall1 * $tall2);
break;
case "divisjon":
echo "Svaret er: " . ($tall1 / $tall2);
break;
}