dedlfix: Konstrukor der Parent klasse ansprechen = wie ?

Beitrag lesen

echo $begrüßung;

wie kann ich auch den Konstruktor der Elternklasse aufrufen ?

PHP 4:

Wie nachzulesen ist, werden geerbte Konstruktoren nicht automatisch aufgerufen. Zugriff auf die Elternklasse erhält man mit parent. Damit kann man normale Methoden wie auch den Konstruktor aufrufen.

parent::name_der_methode();

Beim Ändern des Elternklassennamens muss man u.a. auch den Aufruf des Eltern-Konstruktors anpassen. Wenigstens dies kann man sich ersparen, wenn man den Elternkonstruktoraufruf etwas anders löst:

$parentClass = get_parent_class($this);
  if (method_exists($this, $parentClass))
    $this->$parentClass();

Das ergibt dann auch keinen Fatal error, wenn die Elternklasse keinen Konstruktor besitzt.[*]

PHP 5:

Wie nachzulesen ist, werden geerbte Konstruktoren nicht automatisch aufgerufen. Zugriff auf die Elternklasse erhält man mit parent. Damit kann man normale Methoden wie auch den Konstruktor aufrufen.

Im Gegensatz zu PHP 4 reserviert PHP5 __construct als Namen für den Konstruktor. Hier lässt sich einfach

parent::__construct();

aufrufen. Wenn in der Elternklasse keine __construct-Methode zu finden ist, wird versucht diese in der Großeltern-Klasse aufzurufen usw. Wenn keine __construct-Methode gefunden werden kann, gibt es einen Fatal error. Ein PHP 4-Konstruktor (Konstrutor-Funktionsname = Klassenname) wird von parent::__construct() nicht aufgerufen.

echo "$verabschiedung $name";

[*] In kleinen, überschaubaren Projekten mag man sich diesen Aufwand sparen. In größeren, wo Klassen von Dritten geliefert werden, kann man mMn darüber nachdenken, das so zu verwenden.