phpbar.de logo

Mailinglisten-Archive

[php] konstruktor und vererbung

[php] konstruktor und vererbung

LB BL lsblsb at gmx.de
Don Nov 1 13:55:30 CET 2007


hallo!

folgendes problem hab ich seit umstellung auf php5 (meine ich zumindest, dass es erst seit dem zeitpunkt auftritt):

class k1
{
  function k1(p1,p2){}
}

class k2 extends k1
{
  function k2(p1,p2)
  { 
    $this->k1(p1,p2);
    //alternativ: parent::k1(p1,p2)
  }
}

bisher nahm ich an, dass der konstruktor der oberklasse unter php nicht automatisch aufgerufen wird. aber selbst wenn dem so ist, möchte ich dies selbst bewerkstelligen, da ich ja parameter weiterreichen will.
das problem das jetzt auftritt ist, dass der konstruktor der oberklasse 2x aufgerufen wird, einmal implizit durch php u. das zweite mal durch meinen expliziten aufruf.
das ist mir jetzt aufgefallen, da ich einen destructor in der oberklasse habe, der nun zweimal aufgerufen, da dieser destructor automatisch jeden konstruktor-aufruf als objekt-erzeugung versteht. heisst - es wird nachher auch zweimal eine destruktor funktion aufgerufen. in dieser wird eine datenbank verbindung geschlossen, die dann beim zweiten (fälschlicherweise auftretetenden aufruf) des destruktors das problem hat das keine gültige verbindung existiert -> ungültiger mysql-link.

kann ich verhindern, dass php automatisch einen konstruktor-aufruf an die oberklasse richtet?

bzw. fallen euch evtl. noch alternative ratschläge bezüglich des konstruktor-problems ein. 

danke und gruß
lars

-- 
GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail

php::bar PHP Wiki   -   Listenarchive