2017-09-05 111 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; 
}