在 PHP 中存取父類別變數
使用繼承時,有必要存取父類別的變數。在提供的範例中,類別 B 擴展了類別 A 並嘗試回顯變數 $bb,該變數在父類別中定義為 protected。但會拋出錯誤,表示 $bb 是未定義的類別常數。
要在子類中顯示父變量,請使用以下語法:
<code class="php">echo $this->bb;</code>
與私有變量不同不能在類外部訪問受保護的變量,但可以在子類中訪問。因此,子類別中可以透過$this關鍵字直接存取$bb。 'parent bb' 的預期結果將以預期列印。
其他資訊:parent:: 的用法
當您需要時,可以使用parent:: 語法從父類擴展方法的功能。與問題中提供的範例不同,子類別僅存取父變量,parent:: 允許您修改或增強繼承方法的行為。
例如,如果父類Airplane 有一個私有變數$pilot 和一個將飛行員分配給$pilot 變數的建構子:
<code class="php">class Airplane { private $pilot; public function __construct($pilot) { $this->pilot = $pilot; } }</code>
並且您希望建立一個擴充Airplane 的Bomber 類別並且加入一個導航器變數和一個擴充建構函數:
<code class="php">class Bomber extends Airplane { private $navigator; public function __construct($pilot, $navigator) { $this->navigator = $navigator; parent::__construct($pilot); // Assigns $pilot to $this->pilot } }</code>
透過使用parent::__construct($pilot),您可以從子類別呼叫父類別的建構函數,將pilot參數指派給子類別中的$pilot變量,同時仍然添加導航器功能。這允許您重複使用父類別中的現有程式碼並在子類別中自訂它,遵守 DRY(不要重複自己)原則。
以上是如何在 PHP 中存取子類別中的父類別變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!