Menu
Coddy logo textTech

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 Retriever

Sie 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 old

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

challenge icon

Aufgabe

Einfach

Ihnen 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 in book.php mit einer __construct-Methode, die die Eigenschaften $title, $author und $pages initialisiert
  • In driver.php, importieren und erstellen Sie ein Buch-Objekt für "Harry Potter" von "J.K. Rowling" mit 400 Seiten

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 Shepherd

Konstruktoren 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 1

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";
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung