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.
Probier 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 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