首页 > 编程笔记 > PHP笔记

PHP实现计算器

本节主要是应用前面几节学习的内容来实现一个简单的计算器,示例中使用 HTML 代码编写一个用户操作的计算器界面,然后使用 PHP 的流程控制判断用户操作的各种情况、计算用户输入的值,并动态输出计算结果。

同时示例中还使用了全局数组 $_POST,用来从表单中获取用户输入的信息,这里只需了解即可,后面我们会详细介绍,具体代码如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新宝库(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>
运行结果如下图所示:

所有教程

优秀文章