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

 

posted @ 2016-10-24 16:37  天翊丨流光  阅读(114)  评论(0编辑  收藏  举报