Das Schlüsselwort $this
Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy. Lektion 4 von 91.
Das Schlüsselwort $this verweist innerhalb seiner Methoden auf die aktuelle Instanz einer Klasse. Es ermöglicht dir, auf die Eigenschaften des aktuellen Objekts zuzugreifen und sie 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.
Erstelle ein car-Objekt und lege Eigenschaften fest:
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";Rufe nun die Methoden auf:
$myCar->honk();
$myCar->describe();Ausgabe:
Beep beep!
I am a Red SedanWenn du $myCar->describe() aufrufst, setzt PHP $this automatisch so, dass es auf $myCar verweist. So weiß die Methode, auf die Eigenschaften welches Objekts sie zugreifen soll.
Wenn du ein weiteres car-Objekt hättest:
$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Ich bin ein blauer 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ändige die Klasse Car in car.php, indem du eine Methode namens displayInfo hinzufügst, die das Schlüsselwort $this verwendet, um das Jahr, die Marke und das Modell des Autos im folgenden Format auszugeben:
"This car is a [year] [make] [model]"
car.php: Enthält die Definition der KlasseCar, in der du die MethodedisplayInfohinzufügstdriver.php: Hauptausführungsdatei, die die KlasseCarimportiert und verwendet (gesperrt)
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 OOPKlassen vs. ObjekteDas Schlüsselwort $thisMethodenEigenschaftenKonstruktor (__construct)Destruktor (__destruct)Rückblick – Einfacher Taschenrechner4Vererbung
Grundlegende VererbungDas Schlüsselwort parent::MethodenüberschreibungDas Schlüsselwort finalAbstrakte KlassenRückblick – Mitarbeiterhierarchie7Kapselung
Öffentlich, geschützt, privatZugriffsmodifikatoren im DetailGetter und SetterInformationsverbergungKonstruktor-Promotion (8.0)Wiederholung – System zur Verwaltung von Schülerdatensätzen2Namespaces & Autoloading
Einführung in NamespacesDas use-SchlüsselwortPSR-4-Autoloading-StandardComposer-AutoloaderRückblick – Organisiertes Projekt5Schnittstellen & Verträge
Einführung in SchnittstellenSchnittstellen implementierenMehrere Schnittstellen implementierenSchnittstelle vs. abstrakte KlasseTyp-Hinweise mit SchnittstellenRückblick – Formrechner8Magische Methoden
Einführung in magische Methoden__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Objektklonen__serialize & __unserializeRückblick – Benutzerdefinierte Sammlung11Typsystem & Fehlerbehandlung
TypdeklarationenNullable-TypenUnion- & Intersection-TypenException-KlassenBenutzerdefinierte Exception-HierarchieTry, Catch, FinallyRückblick – Formularvalidator14Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen3Klassen-Eigenschaften
Instanz- vs. statische EigenschaftenKonstanten in KlassenStatische Methoden & EigenschaftenPrivate & geschützte EigenschaftenSchreibgeschützte Eigenschaften (PHP 8.1)Zusammenfassung – Bankkonto-Manager6Polymorphie
Methodenüberschreibung erneut betrachtetPolymorphie über SchnittstellenTyp-Hinweise & Union-TypenSpätes statisches BindenRückblick – Zahlungsabwickler9Traits
Einführung in TraitsMehrere Traits verwendenAuflösung von Trait-KonfliktenAbstrakte Methoden in TraitsTraits vs. Vererbung12Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster15Abschließende Herausforderungen
E-Learning-PlattformBankingsystemEntwicklung einer SpielfigurFahrzeugvermietungÜbe selbstständig: Online-PHP-Compiler