Hallo Sven,
du greifst schon richtig mittels "parent" auf die Methode der Basisklasse zu.
Ja? Würde ich genau _nicht_ so sehen.
Falsch ist es nicht, aber in dem Fall unlogisch.
Außerdem ist der statische Aufruf parent::methode() an ganz andere Bedingungen geknüpft.
Statische Aufrufe sind vergleichbar mit dem simplen Aufrufen einer definierten
Funktion - nur dass die Funktion eben in einer Klasse steht. Man hat aber keinerlei
Klassenvariablen zur Verfügung ($this->variable), der Konstruktor wird nicht aufgerufen,
und es gibt eben keine mehreren Instanzen.
Quatsch. Statische Aufrufe sind zwar dementsprechend gekennzeichnet, aber parent::method()
ist kein statischer Aufruf. Nachvollziehbar an einem ganz einfachen Beispiel:
ckruse@srv001:~ $ cat test.php
<?php
class A {
var $blub = "a";
function x() {
echo "A: ".$this->blub."\n";
}
}
class B extends A {
var $blub = "b";
function x() {
parent::x();
echo "B: ".$this->blub."\n";
}
}
$x = new B();
$x->x();
?>
ckruse@srv001:~ $ php test.php
A: b
B: b
ckruse@srv001:~ $
Grüße,
CK
Keine Schneeflocke faellt je auf die falsche Stelle.