bb` 超過`parent::bb`?" />
在PHP 中存取父類變數
提供的程式碼示範了子類別無法存取從其父類別繼承的受保護變數$bb 的問題。要解決此問題,可以使用語法 $this->bb 來存取變數。
<code class="php">class A { private $aa; protected $bb = 'parent bb'; function __construct($arg) { //do something.. } private function parentmethod($arg2) { //do something.. } } class B extends A { function __construct($arg) { parent::__construct($arg); } function childfunction() { echo $this->bb; // Outputs 'parent bb' } } $test = new B($some); $test->childfunction();</code>
使用 $this->bb 意味著繼承的變數現在是當前物件的一部分,並且可以像任何其他實例變數一樣存取。
附加說明:
雖然使用$this->bb 解決了眼前的問題,但了解$this 和$this 之間的區別很重要->和parent:: 存取繼承的變數和方法時。
$this->指的是當前對象,而parent::指的是父類。 $這個->可用於直接存取繼承的變量,而parent::用於呼叫父類別方法或存取父類別靜態變數。
例如,如果您想要重寫父類別方法,同時仍存取原始類別來自父類別的方法,您可以使用以下語法:
<code class="php">class Child extends Parent { function myMethod() { parent::myMethod(); // Calls the parent class's myMethod() } }</code>
以上是在 PHP 中存取受保護的父類變數:為什麼使用 `$this->bb` 而不是 `parent::bb`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!