Fragen zur Klassenvererbung

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Fragen zur Klassenvererbung

Beitrag 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() ... )
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Fragen zur Klassenvererbung

Beitrag 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.
KB:knigge
Antworten

Zurück zu „Coding & Technik“