phpbar.de logo

Mailinglisten-Archive

[php] PHP 4.1.1, Vererbung+ Konstruktoren

[php] PHP 4.1.1, Vererbung+ Konstruktoren

Alexander Meurer php_(at)_phpcenter.de
Mon, 21 Jan 2002 10:45:43 +0100


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