Heim  >  Artikel  >  Backend-Entwicklung  >  So greifen Sie in PHP auf übergeordnete Klassenvariablen zu

So greifen Sie in PHP auf übergeordnete Klassenvariablen zu

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-22 23:48:28913Durchsuche

How to Access Parent Class Variables in PHP

Zugriff auf übergeordnete Klassenvariablen in PHP

Bei der objektorientierten Programmierung kann der Zugriff auf die übergeordnete Klassenvariable innerhalb einer untergeordneten Klasse eine Herausforderung darstellen. Betrachten Sie den folgenden Code:

<code class="php">class A {
    private $aa;
    protected $bb = 'parent bb';

    // ...
}

class B extends A {
    function childfunction() {
        echo parent::$bb; // Fatal error: Undefined class constant 'bb' 
    }
}
</code>

Der Versuch, mit parent::$bb auf die Variable $bb zuzugreifen, führt zu einem Fehler. Dies liegt daran, dass die Variable geschützt ist und auf geschützte Variablen nur innerhalb der Klasse und ihrer untergeordneten Klassen zugegriffen werden kann.

Lösung: Verwendung von $this->bb

To Um korrekt auf die Variable $bb in der untergeordneten Klasse zuzugreifen, verwenden Sie $this->bb. Diese Syntax bezieht sich auf die Instanzvariable des aktuellen Objekts, die die von der übergeordneten Klasse geerbten Variablen enthält.

<code class="php">echo $this->bb;</code>

Die Variable $bb wird geerbt und ist nicht privat, daher ist sie Teil des aktuellen Objekts und kann Der Zugriff erfolgt über das Schlüsselwort $this.

Zusätzliche Informationen

In Situationen, in denen Sie das Verhalten einer Methode der übergeordneten Klasse ändern müssen, verwenden Sie parent::. Betrachten Sie beispielsweise Folgendes:

<code class="php">class Airplane {
    private $pilot;

    public function __construct( $pilot ) {
        $this->pilot = $pilot;
    }
}

class Bomber extends Airplane {
    private $navigator;

    public function __construct( $pilot, $navigator ) {
        $this->navigator = $navigator;

        parent::__construct( $pilot ); // Assign to this->pilot
    }
}</code>

Hier erweitert parent:: den Konstruktor der Airplane-Klasse, um die Variable $navigator hinzuzufügen. Dadurch können Sie dem DRY-Prinzip folgen und gleichzeitig die gewünschte Funktionalität bereitstellen.

Das obige ist der detaillierte Inhalt vonSo greifen Sie in PHP auf übergeordnete Klassenvariablen zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn