www.PHP-Crawler.de Translate into English Traduire cette page PHP-Crawler - Home PHP-Crawler - Home
   


  Home
    Hier geht´s zurück zur Startseite von PHP-Crawler.de

     Partnerseiten
     PHPWelt
     PHP Resource
     phpforum.de
     admin-wissen.de
     Belauscht.de
     www.z-online.de

   



 
Konstruktor und Destruktor
Einblick in die Welt der Objektorientierung...


Konstruktor

PHP5 bietet die Möglichkeit einen Konstruktor zu deklarieren. Dieser wird immer bei jedem neu erzeugten Objekt aufgerufen. Dies bedeutet, dass man in den Konstruktor nur Dinge schreiben sollte, die das Objekt bei jedem Aufruf benötigt, da ansonsten überflüssige Systemanforderungen aufkommen.

Möchte man als Kindklasse den Konstruktor der Vaterklasse aufrufen, so muss man parent::__construct() innerhalb der Kindklasse im Konstruktor ausführen.

Hierzu ein Beispiel:

<?php
class BaseClass {
// Konstruktor der Klasse BaseClass
   
function __construct() {
       print 
"Im BaseClass Konstruktor\n";
   }
}

class 
SubClass extends BaseClass {
// Im Kindkonstruktor wird auf den Konstruktor der Vaterklasse zugegriffen
   
function __construct() {
       
parent::__construct();
       print 
"Im SubClass Konstruktor\n";
   }
}
// Mit dem erzeugen der Objekte wird auch automatisch der Konstruktor aufgerufen
$obj = new BaseClass();
$obj = new SubClass();
?>

Destruktor

Das mit PHP5 eingeführte Destruktorprinzip ähnelt sehr dem anderer objektorientierter Programmiersprachen wie z.B. C++. Der Destruktor wird immer dann aufgerufen, wenn alle Referenzen zu einem Objekt wegfallen oder dieses zerstört wird.

Wie auch beim Konstruktor wird der Vaterdestruktor nicht implizit mit aufgerufen. Dies bedeutet, dass man explizit über parent::__destruct() den Vaterdestruktor im Kinddestruktor aufrufen muss.

Hierzu ebenfalls ein Beispiel:

<?php
class MyDestructableClass {
   function 
__construct() {
       print 
"Im Konstruktor\n";
       
$this->name "MyDestructableClass";
   }

   function 
__destruct() {
       print 
"Zerstoere " $this->name "\n";
   }
}

$obj = new MyDestructableClass();
?>

 


|