存档:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>PHP实现计算器</title>
5 </head>
6
7 <body>
8 <?php
9 $mess = "";
10 if(isset($_POST["sub"])){
11 if($_POST["num1"] == ""){
12 $mess .= "第一个数不能为空!<br>";
13 }
14 else{
15 if(!is_numeric($_POST["num1"])){
16 $mess .="第一个数必须是数字!<br>";
17 }
18 }
19
20 if($_POST["num2"]==""){
21 $mess .="第二个数不能为空!<br>";
22 }
23 else{
24 if(!is_numeric($_POST["num2"])){
25 $mess .="第二个数必须是数字!<br>";
26 }
27 else{
28 if($_POST["opt"]=="/"&&$_POST["num2"]==0){
29 $mess .="除数不能为0";
30 }
31 }
32 }
33 }
34 ?>
35 <table border="1" align="center" width="400">
36 <form action="" method="post">
37 <caption><h1>计算器</h1></caption>
38 <tr>
39 <td>
40 <input type="text" size="4" name="num1" value="<?php echo $_POST["num1"]?>" />
41 </td>
42
43 <td>
44 <select name="opt">
45 <option value="+" <?php echo $_POST["opt"]=="+" ? "selected" : "" ?>>+</option>
46 <option value="-" <?php echo $_POST["opt"]=="-" ? "selected" : "" ?>>-</option>
47 <option value="x" <?php echo $_POST["opt"]=="x" ? "selected" : "" ?>>x</option>
48 <option value="/" <?php echo $_POST["opt"]=="/" ? "selected" : "" ?>>/</option>
49 <option value="%" <?php echo $_POST["opt"]=="%" ? "selected" : "" ?>>%</option>
50 </select>
51 </td>
52
53 <td>
54 <input type="text" size="4" name="num2" value="<?php echo $_POST["num2"]?>" />
55 </td>
56
57 <td>
58 <input type="submit" name="sub" value="计算" />
59 </td>
60 </tr>
61 </form>
62 <?php
63 if(isset($_POST["sub"])){
64 echo '<tr><td colspan="4">';
65 if(!$mess){
66 $sum=0;
67 switch($_POST["opt"]){
68 case "+":
69 $sum = $_POST["num1"] + $_POST["num2"];
70 break;
71 case "-":
72 $sum = $_POST["num1"] - $_POST["num2"];
73 break;
74 case "x":
75 $sum = $_POST["num1"] * $_POST["num2"];
76 break;
77 case "/":
78 $sum = $_POST["num1"] / $_POST["num2"];
79 break;
80 case "%":
81 $sum = $_POST["num1"] % $_POST["num2"];
82 break;
83 }
84
85 echo "结果:{$_POST['num1']} {$_POST['opt']} {$_POST['num2']} = {$sum}";
86 }
87 else{
88 echo $mess;
89 }
90 echo '</td></tr>';
91 }
92 ?>
93 </table>
94 </body>
95 </html>
结果如下: