Das $this-Schlüsselwort
Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy — Lektion 4 von 91.
Das Schlüsselwort $this bezieht sich auf die aktuelle Instanz einer Klasse innerhalb ihrer Methoden. Es ermöglicht Ihnen, auf Eigenschaften des aktuellen Objekts zuzugreifen und diese zu ändern.
Hier ist ein Beispiel für eine Klasse mit Methoden, die $this verwenden:
<?php
class Car {
public $color;
public $model;
public function honk() {
echo "Beep beep!\n";
}
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}Das Schlüsselwort $this wird innerhalb von Methoden verwendet, um auf das Objekt zu verweisen, das die Methode aufgerufen hat.
Erstellen Sie ein Car-Objekt und legen Sie Eigenschaften fest:
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";Rufen Sie jetzt die Methoden auf:
$myCar->honk();
$myCar->describe();Ausgabe:
Beep beep!
I am a Red SedanWenn Sie $myCar->describe() aufrufen, setzt PHP $this automatisch so, dass es auf $myCar verweist. So weiß die Methode, auf die Eigenschaften welches Objekts sie zugreifen muss.
Wenn Sie ein weiteres Auto-Objekt hätten:
$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Ich bin ein Blue SUVWichtiger Punkt: $this bezieht sich immer auf das spezifische Objekt, das die Methode aufgerufen hat. Jedes Objekt erhält seinen eigenen Kontext, wenn eine Methode ausgeführt wird.
Aufgabe
EinfachVervollständigen Sie die Klasse Car in car.php, indem Sie eine Methode namens displayInfo hinzufügen, die das Schlüsselwort $this verwendet, um das Jahr, die Marke und das Modell des Autos in folgendem Format auszugeben:
"This car is a [year] [make] [model]"
car.php: Enthält die Definition der KlasseCar, in der Sie die MethodedisplayInfohinzufügen werdendriver.php: Hauptausführungsdatei, die die KlasseCarimportiert und verwendet (gesperrt)
Spickzettel
Das Schlüsselwort $this bezieht sich auf die aktuelle Instanz einer Klasse innerhalb ihrer Methoden und ermöglicht es Ihnen, auf Eigenschaften des aktuellen Objekts zuzugreifen und diese zu ändern.
Verwendung von $this in einer Klasse:
<?php
class Car {
public $color;
public $model;
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}Erstellen eines Objekts und Aufrufen von Methoden:
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";
$myCar->describe(); // I am a Red SedanWenn Sie $myCar->describe() aufrufen, setzt PHP $this automatisch so, dass es sich auf $myCar bezieht. Jedes Objekt erhält seinen eigenen Kontext, wenn eine Methode ausgeführt wird, sodass sich $this immer auf das spezifische Objekt bezieht, das die Methode aufgerufen hat.
Probier es selbst
<?php
require_once 'car.php';
$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";
$myCar->displayInfo();
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDas $this-SchlüsselwortMethodenEigenschaftenKonstruktor (__construct)Destruktor (__destruct)Rückblick - Einfacher Taschenrechner4Vererbung
Grundlagen der VererbungDas parent:: SchlüsselwortMethoden überschreibenDas final SchlüsselwortAbstrakte KlassenZusammenfassung – Mitarbeiter-Hierarchie7Kapselung
Public, Protected, PrivateZugriffsmodifikatoren im DetailGetter und SetterInformation HidingConstructor Promotion (8.0)Zusammenfassung – Studentenverwaltungssystem2Namensräume & Autoloading
Einführung in NamensräumeDas use-SchlüsselwortPSR-4 Autoloading-StandardComposer AutoloaderZusammenfassung – Organisiertes Projekt5Interfaces & Verträge
Einführung in InterfacesInterfaces implementierenMehrfache Interface-ImplementierungInterface vs. Abstrakte KlasseType Hinting mit InterfacesZusammenfassung – Formen-Rechner8Magische Methoden
Einführung in magische Methoden__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Objekt-Klonen__serialize & __unserializeZusammenfassung - Eigene Collection11Typsystem & Fehlerbehandlung
TypdeklarationenNullable-TypenUnion- & Intersection-TypenException-KlassenEigene Exception-HierarchieTry, Catch, FinallyZusammenfassung - Formular-Validator14Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen3Klasseneigenschaften
Instanz- vs. statische EigenschaftenKonstanten in KlassenStatische Methoden & EigenschaftenPrivate & geschützte EigenschaftenReadonly-Eigenschaften (PHP 8.1)Zusammenfassung – Bankkonto-Manager6Polymorphismus
Method Overriding erneut betrachtetPolymorphismus über InterfacesType Hinting & Union TypesLate Static BindingZusammenfassung – Payment Processor9Traits
Einführung in TraitsVerwendung mehrerer TraitsKonfliktlösung bei TraitsAbstrakte Methoden in TraitsTraits vs. Vererbung12Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster15Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung