Mailinglisten-Archive |
Hallo Arash, > Bei PHP 4.1.1 ist das Verhalten scheinbar undefiniert. Mal wird der > Konstruktor aufgerufen, mal bekomme ich folgende Fehlermeldung: > "Fatal error: Cannot instantiate non-existent class: mountainbike in > /www/testOO.php on line 15" Diese Fehlermeldung kenne ich auch schon von früheren Versionen. Scheint dann wohl irgendwie eine Konfigurationsfrage zu sein. > Abhilfe schafft nur, auch der erweiterten Klasse (MountainBike) einen > Konstruktor zu verpassen, der wiederum den parent-Konstruktor aufruft: > > <?php > class Bike { > function Bike() { > echo 'Constructor of class "Bike"'; > } > } > > > class MountainBike extends Bike { > function MountainBike() { > parent::Bike(); > } > } > > $mb = new MountainBike(); > ?> Daher habe ich die Klassen immer genau so vererbt. > Weiss jemand, warum das so ist? Und wenn ja, was ich dagegen unternehmen > kann? Wenn irgendwie möglich, möchte ich die (vielen) in meinem Projekt > betroffenen Skripte nicht umstricken. Erstmal scheue ich den Aufwand, > ausserdem ist es nicht so elegant... Wenn man die Klassendefinitionen in Include-Dateien packt, kann *dies* eigentlich nicht sooo viel Arbeit bedeuten. Außerdem hat Codeersparnis nicht immer was mit Eleganz zu tun. ;) Ich finde es lesbarer, wenn im Constructor steht, welchen Parent-Constructor man aufruft. Ciao Alex
php::bar PHP Wiki - Listenarchive