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中文網其他相關文章!