Seite 1 von 1

Fragen zur Klassenvererbung

Verfasst: 03.07.2011 21:12
von fanrpg
Hallo,

nun nach 2 Jahren Pause habe wieder mit PHP angefangen.. nun stellen mich nun Fragen und zwar..

wenn ich folgenden code bspw. habe:

Code: Alles auswählen

<?php

class A {

public function __construct($a, $b) {
}

protected function a() {
}

}

class B extends A {
public function __construct($a, $b) {
}
}
?>
Muss ich im construct von Class B den construct von Class A manuell ausführen? Weil mein Ausflug nach Google sagt mir ich muss parent::__construct() in der Child-Klasse ausführen, jedoch bin ich der festen Überzeugung das damals defenetiv nicht gemacht zu haben.. (um im Ergebnis halt auch den construct von a auch ausgeführt zu haben)
und..
Man kann ja in der Child Klasse auch auf Funktion (und Variablen) der Parent Klasse ja auch mittels $this zugreifen (sofern natürlich entsprechend vorher gesetzt? (und nicht nur via parent::a() ... )

Re: Fragen zur Klassenvererbung

Verfasst: 03.07.2011 23:26
von Pyramide
Im Zweifelsfall sollte man sich hier an das PHP-Handbuch wenden, da kann man davon ausgehen, dass die Infos dort korrekt sind:
PHP Handbuch: Konstruktoren/Destruktoren hat geschrieben:Hinweis: Konstruktoren von Vaterklassen werden nicht implizit aufgerufen, wenn die Kindklasse einen Konstruktor definiert. Um einen Vaterkonstruktor zu benutzen ist ein Aufruf von parent::__construct() innerhalb des Kindkonstruktors notwendig.
Alternativ wäre TIAS auch schneller gegangen, als hier ein neues Thema zu eröffnen - zumal du ja bereits das Grundkonstrukt geschrieben hast und nur noch zwei Debug-Ausgaben hinzufügen müsstest.