de.comp.lang.php.* FAQ

10.5. Was ist ein Konstruktor?

Antwort von Kristian Köhntopp

Ein Konstruktur ist eine gewöhnliche Funktion einer Klasse. Sie unterscheidet sich von anderen Funktionen derselben Klasse dadurch, dass sie beim Erzeugen der Klasse mit new automatisch aufgerufen wird. In PHP muss ein Konstruktor unglücklicherweise genauso heißen wie die Klasse selbst.

Ein Konstruktor kann optionale Parameter mitgegeben bekommen. Er kann niemals ein Funktionsergebnis liefern.

Man verwendet Konstruktoren oft, um die Variablen eines Objektes zu initialisieren. Die Klasse Menu in PHPLIB verwendet beispielweise einen Konstruktor, um eine Menüstruktur zu initialisieren.

class Menu {
  function Menu() {   // wird automatisch aufgerufen
    $this->setup();
  }

  function setup() {  // Initialisierung...
    reset($this->urlmap);
    while(...) {
      ...;
    }
  }
}

In PHP3 wurde bei abgeleiteten Klassen der Konstruktor der Basisklasse nicht automatisch aufgerufen. Man musste stattdessen Code wie diesen schreiben:

class My_Menu extends Menu {
  var $urlmap = array(
    // meine eigenen Menüpunkte hier
  );

  function My_Menu() {   // wird automatisch aufgerufen
    $this->setup();      // Aufruf der Initialisierung
  }
}

Valid HTML 4.01! Valid CSS!

10.5. Was ist ein Konstruktor?
http://www.php-faq.de/q/q-klassen-konstruktur.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team