PHP三大特性-封装

封装

目的:让类更加安全,不让外界直接访问类里面的成员变量

做法:1.把成员变量做成私有的。2.做一个方法来实现取值或赋值,在方法里面加限制条件。

class ren

{

  private $name;

  private $sex;

  private $age;

  

  function __construct($s)

  {

    $this->sex=$s;  

  }

  public function Say()
  {
    echo "hello";
  }


  function __destruct() //析构函数,对象销毁前执行
  {
    echo "该对象销毁了!";
  }

  

  function SetAge($a) //给age赋值的函数
  {
    if($a>10 && $a<50)
    {
      $this->age = $a;
    }
  }


  function GetAge() //取age的值
  {
    return $this->age;
  }

  

  function __set($name,$value) //对类里面的私有成员进行赋值的魔术方法^
  {
    if($name == "age")
    {
      if($value>20 && $value<50)
        {
          $this->$name = $value;
        }
    }
    else
    {
      $this->$name = $value;
    }
  }

  function __get($name) //对类里面的私有成员进行取值的魔术方法^
  {
    return $this->$name;
  }

}

使用类里面提供的魔术方法也可以实现对私有成员的操作
__set()特点:会自动执行,把赋值语句中的变量名作为第一个参数,把变量值作为第二个参数调用__set方法
__get()特点:会自动执行,把取值语句中的变量名作为参数调用__get方法

原文地址:https://www.cnblogs.com/dianfu123/p/5493859.html