封装是把一些相关的属性和行为隐藏起来,从而得到保护和安全
封装关键字
public 表示全局,类内部外部子类都可以访问;
protected表示受保护的,只有本类或子类或父类中可以访问;
private表示私有的,只有本类内部可以使用;
Public | Protected | Private | |
全局 | √ | X | X |
继承类 | √ | √ | X |
本类 | √ | √ | √ |
class MyPc{ public $name; //全局属性,任何位置都可以引用 protected $price; //保护属性,只有本类或子类或父类中可以访问 private function vod() { //私有属性,只有本类内部可以使用; $this->name; } ……}
封装相关函数:__set() , __get()
某些特定操作的时候需要访问和赋值封装的类型,这个时候我们就需要其他的函数帮我们完成这些操作,PHP为我们提供了个方法名:__set() , __get()
__set() 取得当前类中封装过私有属性或者方法重新执行或赋值操作
__set($Name,$Value)
__get() 取得当前类中封装过属性或方法并转换成共有属性
__get()
例:
class MyPc{ private $name; function __construct($name=""){ return $this->name=$name; } function __get($name){ return $this->name."===="; } function __set($n,$v){ if($v>=222){ $this->$n = $v; } } private function power(){ return $this->name."power..."; } function ok(){ return $this->power()."ok"; } }$pc1 = new MyPc("my pc");$pc1->name="55";echo $pc1->name."";echo $pc1->ok();