首頁  >  文章  >  後端開發  >  php三種存取權限(oop)的差別是什麼

php三種存取權限(oop)的差別是什麼

黄舟
黄舟原創
2017-09-22 09:09:044240瀏覽

php三種存取權限(oop)的差別是什麼

PHP物件導向(oop)中有三種存取權分別是:

public: 公有類型

特點:外部可調用,內部可調用,子類別可調用

在子類別中可以透過self::var調用public方法或屬性,parent::method呼叫父類別方法

在實例中可以能過$obj->var 來呼叫public類型的方法或屬性

protected: 受保護類型

#特點:外部不可呼叫 ,內部可呼叫  子類別可以呼叫

在子類別中可以透過self::var呼叫protected方法或屬性,parent::method呼叫父類別方法

#在實例中不能透過$obj->var 來呼叫  protected類型的方法或屬性

private: 私有類型

#。內部可調用,子類別不可調用該類型的屬性或方法只能在該類別中使用,在該類別的實例、子類別中、子類別的實例中都不能呼叫私有類型的屬性和方法

程式碼舉例

<?php  
	//final类不能被继承,final类不能被重写
	//public 外部可调用,内部可调用,子类可调用
	//protected 受保护类   外部不可调用   子类可以调用
	//private私有的   外部不可调用   子类不可调用
class human{
	//公有的
	public $money = 1000;
	//受保护的
	protected $che = "bmw";
	//私有的
	private $flower = "meigui";
 
	//调用公有类
	public function t1(){
		echo $this->money;
	}
	//调用受保护的
	public function t3(){
		echo $this->che;
	}
	//调用私有的
	public function t5(){
		echo $this->flower;
	}
}
 
class stu extends human{
	//子类调用公有的
	public function t2(){
		echo $this->money;
	}
	//子类调用受保护的
	public function t4(){
		echo $this->che;
	}
	//子类调用私有的
	public function t6(){
		echo $this->flower;
	}
 
}
 
//实例化对象
$stu = new stu();
echo $stu->money;
echo $stu->t1();
echo $stu->t2();
echo $stu->t3();
echo $stu->t4();
echo $stu->t5();
echo $stu->t6();

補:self 和parent 的區別

##a).在子類別中常用到這兩個物件。他們的主要差異在於self可以呼叫父類別中的公有或受保護的屬性,但parent不可以呼叫

b).self:: 它表示目前類別的靜態成員(方法與屬性) 與$ this 不同,$this是指目前物件

更多相關知識,請造訪 ###PHP中文網###! ! ###

以上是php三種存取權限(oop)的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn