PHP HandbuchKonstruktoren
Konstruktoren sind Funktionen innerhalb einer Klasse, die automatisch aufgerufen wird, sobald Sie mittels new eine neue Instanz erstellen. In PHP 3 wird eine Funktion zum Konstruktor, wenn sie den gleichen Namen wie die Klasse hat. In PHP 4 wird eine Funktion zum Konstruktor, wenn sie den gleichen Namen wie die Klasse hat, in der sie definiert ist. Der Unterschied ist subtil, aber entscheidend (siehe unten).
Die Klasse Auto_Cart entspricht der Klasse Cart und hat einen Konstruktor, der Cart bereits mit einem Artikel der Nummer "10" initialisiert, sobald ein neuer Auto_Cart mittels "new" erstellt wird. Konstruktoren können Argumente übernehmen, die optional sein können, was sie sehr praktisch macht. Um eine Klasse auch ohne Parameter verwenden zu können, sollten alle Parameter für Konstruktoren optional sein, indem sie mit Standardwerten ausgestattet werden.
Sie können auch den Operator @ verwenden, um Fehlermeldungen innerhalb des Konstruktors zu unterdrücken, z.B. @new.
In PHP 3 wird bei dem obigen Beispiel kein Konstruktor aufgerufen. Die Regel in PHP 3 besagt: 'Ein Konstruktor ist eine Funktion mit dem selben Namen wie die Klasse'. Der Name der Klasse ist B, und nachdem in Klasse B keine Funktion namens B() existiert, passiert nichts. Dies ist in PHP 4 mit der Einführung einer anderen Regel behoben: Wenn eine Klasse keinen Konstruktor hat, wird der Konstruktor der Basisklasse aufgerufen, so dieser existiert. Das obige Beispiel hätte in PHP 4 also 'I am the constructor of A.<br>' ausgegeben.
In PHP 3 wird die Funktion B() in der Klasse A plötzlich zum Konstruktor in Klasse B, auch wenn dies nie beabsichtigt war. Die Regel in PHP 3 lautet: 'Ein Konstruktor ist eine Funktion mit dem gleichen Namen wie die Klasse'. PHP 3 kümmert sich nicht darum, ob die Funktion in Klasse B definiert, oder ob sie nur vererbt wurde. Dies ist in PHP 4 mit einer modifizierten Regel behoben: 'Ein Konstruktor ist eine Funktion mit dem selben Namen wie die Klasse, in der sie definiert wurde'. So hätte die Klasse B in dem obigen Beispiel keinen eigenen Konstruktor, und würde der Konstruktor der Basisklasse aufgerufen, welcher 'I am the constructor of A.<br>' ausgeben würde.
Destruktoren sind Funktionen die automatisch aufgerufen werden, wenn ein Objekt entweder mittels unset(), oder durch Verlassen des Gültigkeitsbereiches zerstört wird. Es gibt in PHP keine Destruktoren.
|
PHP-Index
Neuzugänge PHP MySQL Tutorials
|
|