2017-09-05 98 views
0

与PHP相对较新,我的第三天左右看着它。我一直在试图创建一个简单的PHP计算器,它具有加法,减法,乘法和除法。想尝试以此为出发点:Simple PHP calculator但我一直有问题让它正常工作。简单的PHP计算器,与逻辑和输出的问题

// 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。文本字符串不显示这些情况。另一方面,最后两个案例完成他们应该做的事情并正常显示。

Ex。 输入1为$ tall1和2 $ tall2会给这些结果:

  • 壳体1:2
  • 壳体2:-2
  • 壳体3:Svaret ER:2
  • 壳体4: Svaret er:0.5

在这一点上,我不知道为什么会发生这种情况,并想知道是否有其他人会有解决方案吗?我知道使用if,elseif,else可以通过重新编写PHP代码来解决,但我更喜欢坚持切换,case。

回答

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