PHP實現計算器

2020-08-08 14:48:38
本節主要是應用前面幾節學習的內容來實現一個簡單的計算器,範例中使用 HTML 程式碼編寫一個使用者操作的計算器介面,然後使用 PHP 的流程控制判斷使用者操作的各種情況、計算使用者輸入的值,並動態輸出計算結果。

同時範例中還使用了全域性陣列 $_POST,用來從表單中獲取使用者輸入的資訊,這裏只需瞭解即可,後面我們會詳細介紹,具體程式碼如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>C語言中文網(PHP實現簡單的計算器)</title>
</head>
<body>
    <?php
        $msg = ''; // 用來儲存錯誤資訊
        $num1 = !empty($_POST['num1']) ? $_POST['num1'] : ''; // 獲取第一個數
        $num2 = !empty($_POST['num2']) ? $_POST['num2'] : ''; // 獲取第二個數
        if(isset($_POST['sub'])) { // 判斷是否執行計算操作
            if($num1 == ""){ // 當第一個數爲空時的錯誤資訊
                $msg .= "第一個數不能爲空!<br>";
            }else{ // 當第一個數不是數位的錯誤資訊
                if(!is_numeric($num1)){
                    $msg .= "第一個數必須是數位!<br>";
                }
            }
            if($num2 == ""){ // 當第二個數爲空時的錯誤資訊
                $msg .= "第二個數不能爲空!<br>";
            }else{
                if(!is_numeric($num2)){ // 當第二個數不是數位時的錯誤資訊
                    $msg .= "第二個數必須是數位!<br>";
                }else{
                    if($num2 == 0 && $_POST['operator'] =='/'){ // 除法運算時除數爲0時的錯誤資訊
                        $msg .= "除數不能爲 0!<br>";
                    }
                }
            }
        }
    ?>
    <table border="1" align="center">
        <form action="" method="post">
            <caption><h2>計算器</h2></caption>
            <tr>
                <td><input type="text" name="num1" value="<?php echo $num1?>"></td>
                <td>
                    <select name="operator">
                        <option value="+" <?php echo !empty($_POST['operator'])&&$_POST['operator']=='+'?"selected":""?>>+</option>
                        <option value="-" <?php echo !empty($_POST['operator'])&&$_POST['operator']=='-'?"selected":""?>>-</option>
                        <option value="*" <?php echo !empty($_POST['operator'])&&$_POST['operator']=='*'?"selected":""?>>*</option>
                        <option value="/" <?php echo !empty($_POST['operator'])&&$_POST['operator']=='/'?"selected":""?>>/</option>
                        <option value="%" <?php echo !empty($_POST['operator'])&&$_POST['operator']=='%'?"selected":""?>>%</option>
                    </select>
                </td>
                <td><input type="text" name="num2" value="<?php echo $num2?>"></td>
                <td><input type="submit" name="sub" value="計算"></td>
            </tr>
        </form>
        <?php
            if(isset($_POST['sub'])){ // 判斷是否執行了計算操作
                echo '<tr><td colspan="4">';
                if(!$msg){ // 沒有錯誤資訊時,執行下面 下麪的操作
                    $res = 0; // 用來儲存計算結果
                    switch ($_POST['operator']) { // 根據運算子執行相應的運算
                        case '+':
                            $res = $num1 + $num2;
                            break;
                        case '-':
                            $res = $num1 - $num2;
                            break;
                        case '*':
                            $res = $num1 * $num2;
                            break;
                        case '/':
                            $res = $num1 / $num2;
                            break;
                        case '%':
                            $res = $num1 % $num2;
                            break;
                    }
                    echo '結果:'.$num1.' '.$_POST['operator'].' '.$num2.' = '.$res; // 輸出運算結果
                }else{
                    echo $msg; // 輸出錯誤資訊
                }
                echo '</td></tr>';
            }
        ?>
    </table>
</body>
</html>
執行結果如下圖所示: