Zum Inhalt springen

PHP OOP Basics: Konstruktor/Destruktor

Definieren wir nun eine Konstruktormethode für unsere Klasse. Diese wird (wenn da) für jedes neuerzeugte Objekt auf.

<?php
class MyClass {
   function __construct() {
       print "Konstruktor der MyClass aufgerufen.";
   }
}

class FirstSubClass extends MyClass {
   function __construct() {
       parent::__construct();
       print "Zusätzlich zum Konstruktor der Parent Klasse mache ich das.";
   }
}

class AnotherSubClass extends MyClass {
    // erbt den Konstruktor von MyClass (außer private definiert)
}

In der alten Schreibeweise wurde die Konstruktor Methode durch eine Methode definiert, die den selben Namen wie die Klasse hat. Wenn keine __construct() Methode definiert ist, sucht PHP5 noch nach dieser.

function __destruct() {
   print "Zerstöre Objekt" . $this->name;
}

Der Destruktor macht nun sozusagen genau das Gegenteil.  Die Destruktormethoden wird also aufgerufen, wenn es keine weiteren Referenzen auf ein bestimmtes Objekt mehr gibt oder am Ende des Scripts.

Der Vaterdestruktor wird nicht implizit auferufen, muss also durch parent::__desctruct() erfolgen. Kann wie bei Konstruktoren auch vererbt werden.

Das exit() innerhalb eines Destruktors verhindert die Ausführung sämtlicher weiterer Shutdown Routinen.

Kommentare sind geschlossen, aber Trackbacks und Pingbacks sind möglich.