面向对象的三大特性之一【封装】

类的成员属性可以封装,成员方法也可以封装,所谓封装就是用private关键词来修饰属性和方法,被封装后的属性和方法就变为私有属性和私有方法,这样的私有属性和方法不能被外部对象直接访问和使用,只能在类的内部使用,也就是说只能用$this访问到,私有方法供内部的其他方法调用,如果想让外部new出来的对象可以访问私有属性,可以在类里声明一个公共方法,一般不需要自己声明,可以用魔术方法__set和__get做到,魔术方法在需要的时候会自动调用,魔术方法都有由两个下划线组成的前缀。看下面的例子

class Person{

  private $name;

  private $sex ="保密";

  function __get($proName){

    return $this->$proName;

}

}

$p= new Person;

echo $p->sex;