面向对象三大特性--封装

class Ren               //类是由众多对象抽象出来
{
    public $name;             //成员变量
    public $age;             //public 公有的
    private $sss;            //1.将成员变量变为私有
    private $kkk;            //private 私有的,只能在该类里面访问
    function setkkk($j)
    //面向对象三大特性
    //封装
   //目的:为了使类更加安全
//做法:
//1.将成员变量变为私有
//2.做一个成员方法来间接访问
//3.在该方法里面加限制条件
    {    
        $this->kkk=$j;    
    }
    function getkkk()     //2.做一个成员方法来间接访问
    {
        $this->kkk;    
    }
    private $jjj;
    private $lll;
    //封装的另一种方法
    function __set($u,$i)     //魔术方法,给变量赋值
    {    if($u=="jjj")
        {
            if($i>100&&$i<300)//3.在该方法里面加限制条件
            {
                $this->$u=$i;
            }
        }
        else {$this->$u=$i;}
    }
    function __get($u)
    {
        return $this->$u;
    }
    function __construct($k)  //构造函数,主要用来进行变量的初始化
                              //写法特殊,执行时间特殊
    {
        $this->sss=$k;        //this代表该对象
    }
    public function kiss()    //成员方法
    {
        echo "haoma ?";
    }
}
//实例化
$a=new Ren("你");
$a-> name ="haoddd";         //调用成员变量
$a->age=20;
$a->jjj=101;
$a->lll="还好吗";    //魔术封装调用成员变量
$a->setkkk("kissd");
$a->kiss();                  //调用成员方法
var_dump($a);

原文地址:https://www.cnblogs.com/yi11/p/6739167.html