interface.php

 <html>
     <head>
         <meta charset="utf-8" />
         <title>这是一个简单的计算器</title>
     </head>
 <body>
     <h4>这是一个简单复杂化的计算器</h4>
     <hr/>
     <form action="operation.php" method="post" name="interface">
         <table>
             <tr><td>请输入第一个数:</td><td><input type="text" name="num1" value="" /></td></tr>
             <tr><td>请选择运算符号:</td>
                 <td><select name="symbol">
                     <option value="+">+</option>
                     <option value="-">-</option>
                     <option value="*">*</option>
                     <option value="/">/</option>
                     </select>
                  </td>
             </tr>
             <tr><td>请输入第二个数:</td><td><input type="text" name="num2" value="" /></td></tr>
             <tr>
                 <td><input type="submit" value="计算结果"/></td>
             </tr>
         </table>
     </form>
 <?php
     //empty判断接受值是否为空   isset判断接受值是否存在
     if(isset($_GET['errno'])){
         $erro=$_GET['errno'];
         if($erro==1){
             echo "<br><font size='4' color='red'>输入的不是数字或者为空,请重新输入!</font>";
         }
     }
     //判断一个整数变量是否存在
     if(isset($_GET['sum'])){
         $sum=$_GET['sum'];
         echo "<br><font size='3' color='red'>运算结果是".$sum."</font>";
     }
     //判断一个数是否存在
     if(isset($_GET['dividend'])){
         $dividend=0;
         echo "<br><font size='3' color='red'>被除数不能为".$dividend."</font>";
     }
 ?>
 </body>
 </html>

operation.php

<meta http-equiv="content-type" content="text/html;charset=utf-8">
<?php
    require_once "operation.class.php";

    $num1=$_POST['num1'];
    $num2=$_POST['num2'];
    $symbol=$_POST['symbol'];

    //把下面的运算封装成一个运算类
    $oper1=new Oper();
    $sum=$oper1->operation($num1,$num2,$symbol);
    header("location:interface.php?sum=$sum");
?>

operation.class.php

<?php
    //一个计算器运算的类
    require_once "operation.php";//引用一个文件
    class Oper{
        function operation($num1,$num2,$symbol){
            //判断是否是数字is_numeric
            if( (is_numeric($num1) && is_numeric($num2)) ){
                if($symbol=='+'){
                    $sum=$num1+$num2;
                }
                if($symbol=='-'){
                    $sum=$num1-$num2;
                }
                if($symbol=='*'){
                    $sum=$num1*$num2;
                }
                if($symbol=='/'){
                    if($num2==0){
                        header("location:interface.php?dividend=$num2");
                        exit();
                    }else{
                        $sum=$num1/$num2;
                    }
                }
                return $sum;
            }else{
                header("location:interface.php?errno=1");
                exit();
            }
        }
    }
?>

界面图

比较不熟的JavaScript点滴,慢慢前行,附带简单复杂化的php小计算器一份的更多相关文章

  1. JavaScript初学者福利!必须收藏的24条小技巧

    JavaScript初学者福利!必须收藏的24条小技巧 前端小编 发布于 2013-12-15 22:52 查看数: 2343 评论数: 6 帖子模式 这篇文章将回顾JavaScript的知识 !如果 ...

  2. javascript javascript面向对象的理解及简单的示例

    javascript面向对象的理解及简单的示例 零.本节重点: 1.封装: 2.继承: 壹.下面理解: 一. javascript面向对象概念: 为了说明 JavaScript 是一门彻底的面向对象的 ...

  3. JavaScript中if语句优化和部分语法糖小技巧推荐

    前言 在前端日常开发过程中,if else判断语句使用的次数应该是比较频繁的了,一些较为复杂的场景,可能会用到很多判断,在某个代码块使用很多if else时,代码会显得较为冗余,阅读起来不够清晰. 除 ...

  4. javascript点滴积累

    1. javascript中的array, set, map 均为数据容器,使用iterable内置的forEach方法 var a = ['A', 'B', 'C'];a.forEach(funct ...

  5. javascript常用方法(慢慢整理)

    获取类型:[object object],[object function],[object Undefined]等 Object.prototype.toString.apply(obj); 获取对 ...

  6. jQuery学习之路(7)- 用原生JavaScript实现jQuery的某些简单功能

    ▓▓▓▓▓▓ 大致介绍 学习了妙味,用原生的JavaScript实现jQuery中的某些部分功能 定义自己的函数库lQuery ▓▓▓▓▓▓ $()选择器的实现 jQuery是面向对象的,所以自己编写 ...

  7. JavaScript中this指向的简单理解

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...

  8. JavaScript实现输入验证(简单的用户注册)

    1.先写用户注册页面userrAdd.jsp <body> <center> <form name="f1" id="f1" ac ...

  9. Javascript将构造函数扩展为简单工厂

    一般而言,在Javascript中创建对象时需要使用关键字new(按构造函数去调用),但是某些时候,开发者希望无论new关键字有没有被显式使用,构造函数都可以被正常调用,即构造函数同时还具备简单工厂的 ...

随机推荐

  1. 著名清理软件(CCleaner) 5.24.5841 中文版

    软件名称: 著名清理软件(CCleaner) 软件语言: 多国语言 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 5.7MB 图片预览: 软件简介: CCleaner的体积小, ...

  2. html使用css让文字多行超出部分用省略号三个点显示的方法案例

    text-overflow: -o-ellipsis-lastline;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-w ...

  3. iOS Size Class使用

    iOS8和iPhone6发布已经过去蛮久了,广大的果粉终于迎来了大屏iPhone,再也不用纠结为大屏买三星舍苹果了-但是对于iOS开发人员来说,迎来了和Android开发开发一样的问题->各种屏 ...

  4. insertable = false, updatable = false的使用

    转自:insertable = false, updatable = false的使用 当使用JPA配置实体时,如果有两个属性(一个是一般属性,一个是多对一的属性)映射到数据库的同一列,就会报错. 这 ...

  5. MFC多线程各种线程用法 .

    http://blog.csdn.net/qq61394323/article/details/9328301 一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleTh ...

  6. Python学习笔记——基础篇【第六周】——PyYAML & configparser模块

    PyYAML模块 Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation 常用模块之Co ...

  7. 什么是Bash Shell的内建(build in)命令

    1.什么是build in命令: shell内建命令是指bash(或其它版本)工具集中的命令.一般都会有一个与之同名的系统命令,比如bash中的echo命令与/bin/echo是两个不同的命令,尽管他 ...

  8. Mac下如何使用Vim

    帖子是转载的,原帖地址 Mac OX其实已经默认装好了vim了.不需要再安装Macvim https://ruby-china.org/topics/4905 Mac开发利器之程序员编辑器MacVim ...

  9. centos 安装 ntpdate 并同步时间

    1.安装ntp yum install -y ntp 2.与一个已知的时间服务器同步 # time.nist.gov 是一个时间服务器 ntpdate time.nist.gov 3.删除本地时间并设 ...

  10. Linux 文件服务---------- nfs Server

    Linux 文件服务nfs (Network file system)#网络文件系统 ---> 远程文件调用samba #文件共享(unix /linux /windows ) ,只能适用于局域 ...