在 PHP 的面向對象編程中,parent 這個關鍵字代表父類,更具體地說,它指的是當前類所繼承的父類。在多層繼承中,parent 也可以用來指代祖先類。使用 parent 關鍵字可以讓子類調用父類的屬性和方法,以便在原有的基礎上進行擴展。
舉一個例子,假設我們有一個父類叫做 Animal,里面有一個方法叫做 eat()。我們還有一個子類叫做 Dog,它繼承了 Animal,但是想要在 eat() 方法中加上自己的邏輯,比如輸出“狗吃骨頭”。我們可以這樣寫:
//定義父類 class Animal{ public function eat(){ echo "動物吃東西"; } } //定義子類 class Dog extends Animal{ public function eat(){ parent::eat(); //調用父類的 eat() 方法 echo ",狗吃骨頭"; } } $dog = new Dog(); $dog->eat(); //輸出:動物吃東西,狗吃骨頭
在上面的代碼中,我們使用了 parent::eat(),它代表調用父類的 eat() 方法。然后我們在子類的 eat() 方法中加上了“,狗吃骨頭”的內容。這樣一來,子類就在父類的基礎上擴展了一些新的功能。
另外,在一些情況下,我們可能需要在子類中使用父類中的屬性。這時候,也可以使用 parent 關鍵字。我們還是以 Animal 為父類,以 Dog 為子類為例:
class Animal{ protected $name = "動物"; public function sayName(){ echo $this->name; } } class Dog extends Animal{ public function sayName(){ echo parent::$name; //調用父類的 $name 屬性 echo ",狗"; } } $dog = new Dog(); $dog->sayName(); //輸出:動物,狗
在上面的代碼中,我們使用了 protected 關鍵字來修飾 $name 屬性,在子類中也能訪問。然后在子類的 sayName() 方法中,我們使用了 parent::$name 調用了父類的 $name 屬性,再加上了“,狗”的字樣。這樣一來,輸出就是“動物,狗”。
最后,需要注意的是,如果當前類沒有父類,或者當前類就是最頂層的父類(也就是沒有祖先類了),那么 parent 就不能使用了。
上一篇php pcntl 安裝
下一篇php padding