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