PHP面向对象(三)

封装是把一些相关的属性和行为隐藏起来,从而得到保护和安全

封装关键字

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."<br>";
echo $pc1->ok();
原文地址:https://www.cnblogs.com/Hebe/p/3108602.html