Texte - Anleitungen - PHP - Aufrufen des Konstruktors...
Aufrufen des Konstruktors der Basisklasse in PHP 11. Juli 2003 07:25
Wenn man eine Klasse in PHP erweitert, ist es in der Version 4.3, meines Wissens nach nicht möglich, den Konstruktor der Oberklasse wie in Java mit super() aufzurufen.

Stattdessen kann man in PHP beispielsweise folgendes Konstrukt verwenden:

$parent_name = get_parent_class($this);
parent::$parent_name();


Zunächst ermittelt man den Namen der Oberklasse. Danach ruft man den Konstruktor, wie eine ganz gewöhnlich Methode auf, deren Namen man kennt.

Mit "parent" referenziert man dabei die Oberklasse. In "$parent_name" ist der Name der Oberklasse gespeichert, welcher auch der Name des Konstruktors ist.
Nun kann man in PHP eine Funktion dynamisch aufrufen, indem man ihren Namen in einer Variablen speichert, und danach ein Klammerpaar macht, so wie in "$parent_name()". Das geht mit jedes beliebigen Funktion, solange sie existiert. Sobald ein Klammerpaar gleich nach einer Variablen folgt, wird das Konstrukt als Funktionsaufruf interpretiert.

Und genau das passiert hier auch. Wenn die Oberklasse z.b. Basis heißen würde, wird der Aufruf aufgelöst in:

parent::Basis();
Can
eingereicht von Usher