• PHP---封装


    封装目的:让类更加的安全。

    做法:不让外界直接访问类的成员

    具体做法:
    1.类里面的成员变量做为private

    2.使用成员方法来间接访问成员变量

    3.在该方法里面加限制条件

    **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);
    ?>

    函数重载

    在类里面写多个同名方法来实现不同功能

    
    
    <?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.参数个数不同或参数类型不同

    例子:求两个圆之间的阴影面积

    <?php
    $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();
    ?>

    例子:计算器

    <?php
    $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();
    ?>
  • 相关阅读:
    Zookeeper服务器启动
    BeanFactoryPostProcessor
    ZK简介
    自定义标签解析
    高性能MySQL
    Redis原理
    ApplicationContext
    ThreadPoolExecutor
    NW.js构建PC收银端安装程序的指南
    NW.js安装原生node模块node-printer控制打印机
  • 原文地址:https://www.cnblogs.com/UC0079/p/5993544.html
Copyright © 2020-2023  润新知