Wie greife ich in PHP auf übergeordnete Klassenvariablen zu?

Susan Sarandon
Freigeben: 2024-10-22 22:08:29
Original
258 Leute haben es durchsucht

How to Access Parent Class Variables in PHP?

Zugriff auf übergeordnete Klassenvariablen in PHP: Ein umfassender Leitfaden

Der Zugriff auf übergeordnete Klassenvariablen in PHP ist entscheidend für das Verständnis von Vererbung und objektorientierter Programmierung Konzepte. Im folgenden Beispiel haben wir zwei Klassen, A und B, mit Klasse A als übergeordneter Klasse und Klasse B als untergeordneter Klasse.

class A {
    private $aa;
    protected $bb = 'parent bb';
}

class B extends A {
    function childfunction() {
        echo parent::$bb; // Error: Undefined class constant 'bb'
    }
}
Nach dem Login kopieren

Das Problem tritt auf, wenn wir versuchen, auf die geschützte Variable zuzugreifen (bb) der übergeordneten Klasse A aus der untergeordneten Klasse B mithilfe von parent::$bb. Dies führt zu einem schwerwiegenden Fehler, da $bb als geschützt definiert ist, was bedeutet, dass innerhalb der Klasse selbst und von Unterklassen darauf zugegriffen werden kann, jedoch nicht direkt von außerhalb der Klasse.

Lösung:

Um dieses Problem zu lösen, können wir das Schlüsselwort $this verwenden, das auf das aktuelle Objekt verweist:

echo $this->bb;
Nach dem Login kopieren

Das Schlüsselwort $this bietet Zugriff auf geschützte und private Variablen und Methoden innerhalb der aktuellen Klasse. Dadurch können wir in diesem Fall den Wert der Variablen $bb anzeigen.

Zusätzliche Informationen: Verwendung von parent::

Zusätzlich zur Verwendung von $this können wir dies auch tun Verwenden Sie die parent::-Syntax, um auf Variablen und Methoden der übergeordneten Klasse zuzugreifen. Im Gegensatz zu $this wird parent:: verwendet, wenn wir die Funktionalität der übergeordneten Klasse entweder überschreiben oder erweitern möchten.

Angenommen, wir möchten beispielsweise eine neue Klasse erstellen, die die Airplane-Klasse erweitert und eine Navigator-Eigenschaft hinzufügt :

class Airplane {
    private $pilot;
    function __construct($pilot) {
        $this->pilot = $pilot;
    }
}

class Bomber extends Airplane {
    private $navigator;
    function __construct($pilot, $navigator) {
        parent::__construct($pilot); // Call parent constructor
        $this->navigator = $navigator;
    }
}
Nach dem Login kopieren

In diesem Szenario überschreiben wir die Methode __construct() in der Klasse Bomber, verwenden aber weiterhin parent::__construct(), um sicherzustellen, dass die ursprüngliche Funktionalität der Klasse Airplane erhalten bleibt.

Das Verständnis des Unterschieds zwischen $this und parent:: ist wichtig, um die Vererbung in PHP effektiv zu nutzen und robusten und wartbaren Code zu erstellen.

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

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!