简单的PHP计算器,逻辑和输出问题

时间:2017-09-05 11:27:58

标签: php html

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将得到以下结果:

  • 案例1:2
  • 案例2:-2
  • 案例3:Svaret er:2
  • 案例4:Svaret er:0.5

此时我不知道为什么会发生这种情况,并且想知道其他人是否会有解决方案?我知道使用if,elseif,else将是一个可能的解决方案,通过重新编写代码的PHP端,但我宁愿坚持切换,案例。

1 个答案:

答案 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;
}