Konstruktor (__construct)
Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy — Lektion 7 von 91.
Die __construct-Methode ist eine spezielle Methode, die automatisch ausgeführt wird, wenn Sie ein neues Objekt erstellen. Sie initialisiert die Eigenschaften des Objekts.
Hier ist ein Beispiel für eine Klasse mit einem Konstruktor:
<?php
class Dog {
public $name;
public $breed;
public function __construct($name, $breed) {
$this->name = $name;
$this->breed = $breed;
}
}Die __construct-Methode nimmt Parameter entgegen und weist sie Eigenschaften mithilfe von $this zu.
Erstellen Sie Objekte mit dem Konstruktor:
$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");Wenn Sie new Dog("Rex", "German Shepherd") aufrufen, ruft PHP automatisch __construct auf und übergibt die Argumente.
Greifen Sie auf die Eigenschaften zu, die durch den Konstruktor gesetzt wurden:
echo $rex->name . "\n";
echo $rex->breed . "\n";
echo $buddy->name . "\n";
echo $buddy->breed . "\n";Ausgabe:
Rex
German Shepherd
Buddy
Golden RetrieverSie können auch einen Konstruktor mit Standard-Parameterwerten erstellen:
class Cat {
public $name;
public $age;
public function __construct($name, $age = 1) {
$this->name = $name;
$this->age = $age;
}
}
$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers"); // age defaults to 1
echo $fluffy->name . " is " . $fluffy->age . " years old\n";
echo $whiskers->name . " is " . $whiskers->age . " years old\n";Ausgabe:
Fluffy is 3 years old
Whiskers is 1 years oldWichtiger Punkt: Die __construct-Methode stellt sicher, dass jedes Objekt bei der Erstellung ordnungsgemäß mit seinen Anfangsdaten eingerichtet wird. Sie erspart Ihnen das manuelle Festlegen von Eigenschaften nach der Objekterstellung.
Aufgabe
EinfachIhnen werden PHP-Dateien (book.php und driver.php) zur Verfügung gestellt, um ein Buchsystem zu implementieren.
Ihre Aufgabe ist es:
- Vervollständigen Sie die
Book-Klasse inbook.phpmit einer__construct-Methode, die die Eigenschaften$title,$authorund$pagesinitialisiert - In
driver.php, importieren und erstellen Sie ein Buch-Objekt für"Harry Potter"von"J.K. Rowling"mit400Seiten
Folgen Sie den TODO-Kommentaren in jeder Datei.
Spickzettel
Die Methode __construct ist eine spezielle Methode, die automatisch ausgeführt wird, wenn Sie ein neues Objekt erstellen, um dessen Eigenschaften zu initialisieren.
Definieren Sie einen Konstruktor in einer Klasse:
<?php
class Dog {
public $name;
public $breed;
public function __construct($name, $breed) {
$this->name = $name;
$this->breed = $breed;
}
}Erstellen Sie Objekte mithilfe des Konstruktors:
$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");Greifen Sie auf Eigenschaften zu, die durch den Konstruktor gesetzt wurden:
echo $rex->name; // Rex
echo $rex->breed; // German ShepherdKonstruktoren können Standardwerte für Parameter haben:
class Cat {
public $name;
public $age;
public function __construct($name, $age = 1) {
$this->name = $name;
$this->age = $age;
}
}
$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers"); // age defaults to 1Probier es selbst
<?php
require_once 'book.php';
// TODO: Erstelle ein Book-Objekt mit:
// Titel: "Harry Potter", Autor: "J.K. Rowling", Seiten: 400
$myBook = ?;
echo "'" . $myBook->title . "' by " . $myBook->author . ", " . $myBook->pages . " pages\n";
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