【问题标题】:Simple PHP Calculator, issues with logic and output简单的 PHP 计算器,逻辑和输出问题
【发布时间】:2018-02-13 16:24:59
【问题描述】:

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 端,但我更愿意坚持 switch,case。

【问题讨论】:

    标签: php html


    【解决方案1】:

    那是因为执行顺序。在第一种情况下,如果您的代码首先将 $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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多