Heim > Artikel > Backend-Entwicklung > Zugriff auf geschützte übergeordnete Klassenvariablen in PHP: Warum „$this->bb' anstelle von „parent::bb' verwenden?
bb` Über `parent::bb`?" />
Zugriff auf übergeordnete Klassenvariablen in PHP
Der bereitgestellte Code zeigt ein Problem, bei dem eine untergeordnete Klasse nicht auf die geschützte Variable $bb zugreifen kann, die von ihrer übergeordneten Klasse geerbt wurde . Um dieses Problem zu lösen, kann mit der Syntax $this->bb auf die Variable zugegriffen werden.
<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>
Die Verwendung von $this->bb impliziert, dass die geerbte Variable nun Teil des aktuellen Objekts ist und dies auch sein kann Auf sie kann wie auf jede andere Instanzvariable zugegriffen werden.
Zusätzlicher Hinweis:
Während die Verwendung von $this->bb das unmittelbare Problem löst, ist es wichtig, den Unterschied zwischen $this -> und parent:: beim Zugriff auf geerbte Variablen und Methoden.
$this-> bezieht sich auf das aktuelle Objekt, während parent:: sich auf die übergeordnete Klasse bezieht. $this-> kann verwendet werden, um direkt auf geerbte Variablen zuzugreifen, während parent:: verwendet wird, um Methoden der übergeordneten Klasse aufzurufen oder auf statische Variablen der übergeordneten Klasse zuzugreifen.
Zum Beispiel, wenn Sie eine Methode der übergeordneten Klasse überschreiben möchten, während Sie weiterhin auf das Original zugreifen möchten Methode aus der übergeordneten Klasse können Sie die folgende Syntax verwenden:
<code class="php">class Child extends Parent { function myMethod() { parent::myMethod(); // Calls the parent class's myMethod() } }</code>
Das obige ist der detaillierte Inhalt vonZugriff auf geschützte übergeordnete Klassenvariablen in PHP: Warum „$this->bb' anstelle von „parent::bb' verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!