本节主要是应用前面几节学习的内容来实现一个简单的计算器,示例中使用 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>
运行结果如下图所示:
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/24039.html