zoukankan      html  css  js  c++  java
  • php-封装

    <?php

    class Ren
    {
    private $name;
    private $sex;
    private $age; //年龄必须在18-50之间

    function __construct($v)
    {
    $this->sex = $v;
    }
    //魔术方法set
    function __set($n,$v)
    {
    if($n=="age")
    {
    if($v>=18 && $v<=50)
    {
    $this->$n = $v;
    }
    }
    else
    {
    $this->$n = $v;
    }
    }

    //魔术方法get
    function __get($n)
    {
    return $this->$n;
    }

    /*//设置age的值
    function setage($a)
    {
    if($a>=18 && $a<=50)
    {
    $this->age = $a;
    }
    }
    //获取age的值
    function getage()
    {
    return $this->age;
    }*/

    function say()
    {
    echo "hello";
    }

    //析构方法
    function __destruct()
    {
    echo "这是一个析构方法";
    }

    function __tostring()
    {
    return "这个类是人类";
    }


    }

    $r = new Ren("男");

    //$r->setage(20);
    //echo $r->getage();

    $r->say();
    //$r->age = 30;

    //echo $r->age;

    //$r->__get("age");

    //$r->__set("age",20);

    var_dump($r);

    //构造方法:写法特殊,执行时间特殊

    //OOP三大特性:封装,继承,多态

    //封装的目的:为了让类更安全
    //封装的做法:
    //1.类里面的成员变量做为private
    //2.使用成员方法来间接访问成员变量
    //3.在该方法里面加限制条件

    //php类里面不允许出现同名方法

    //函数重载
    //在类里面写多个同名方法来实现不同功能
    /*public string Show()
    {
    return "显示";
    }
    public string Show(string a)
    {
    return a+"显示";
    }
    public string Show(string a,string b)
    {
    return a+b+"显示";
    }
    public string Show(int b)
    {
    return b+"数字";
    }*/

    //1.函数名必须相同
    //2.参数个数不同或参数类型不同

    //例子:求两个圆之间的阴影面积
    /*$maxr = 20;
    $minr = 10;
    $mj = 3.14*$maxr*$maxr - 3.14*$minr*$minr;


    class Yuan
    {
    //代表半径
    public $r;

    function __construct($n)
    {
    $this->r = $n;
    }

    //求面积的方法
    function MJ()
    {
    return 3.14*$this->r*$this->r;
    }
    }

    $r1 = new Yuan(20);
    $r2 = new Yuan(10);

    $mianji = $r1->MJ()-$r2->MJ();*/

    //例子:计算器

    $a = 10;
    $b = 5;

    $jia = $a+$b;
    $jian = $a-$b;
    $cheng = $a*$b;
    $chu = $a/$b;


    class jisuan
    {
    public $a;
    public $b;

    function __construct($n,$m)
    {
    $this->a = $n;
    $this->b = $m;
    }

    function jia()
    {
    return $this->a+$this->b;
    }
    function jian()
    {
    return $this->a-$this->b;
    }
    function cheng()
    {
    return $this->a*$this->b;
    }
    function chu()
    {
    return $this->a/$this->b;
    }
    function quyu()
    {
    return $this->a%$this->b;
    }
    }

    $j = new jisuan(10,5);
    $j->quyu();


    ?>

  • 相关阅读:
    史上最全Html与CSS布局技巧
    Discuz! X的CSS加载机制
    关于input框只能输入纯数字问题
    对象的数据属性
    vue中将光标定位到Input上的问题
    端口占用问题解决方案
    el-button如何消除右边计数样式
    如何改变vscode的背景颜色
    为什么——要实例化对象?
    call()&apply()
  • 原文地址:https://www.cnblogs.com/wells33373/p/6007321.html
Copyright © 2011-2022 走看看