Mailinglisten-Archive |
Aloha, > Von: Mailanbecker[SMTP:mailanbecker_(at)_gmx.net] > > Ich habe mehrere Klassen, die ich initialisiere. > Bsp.: > > > $Obj->CONF = $CONF > > $Obj->DB = new dev_db; > > $Obj->USER = new dev_user; > > $Obj->USER = new dev_login; /* dev_login extends dev_user */ > das funktioniert so nicht. Das Object $Obj wird jedes mal mit einer anderen Klasse "verbunden", so daß die Methoden und Variablen der vorigen Klasse dann nicht mehr zur Verfügung stehen. Bei mir fangen Objekte immer mit $o.... an, so daß ich dir folgendes ans Herz lege: $oDb = new dev_db; $oUser = new dev_user; $oLogin = new dev_login; Nachteil ist dann, daß du 3 globale Variablen erklären musst. Geschickter wäre es dann so ähnlich wie du es versucht hast. class CONF { var $oDb; var $oUser; var $oLogin; function CONF() { # Konstruktor wg. Namensgleichheit mit Klasse! $this->oDb = new dev_db; $this->oUser = new dev_user; $this->oLogin = new dev_login; } } Damit rufst du im Hauprogramm dann nur noch das auf: $oConf = new CONF; # "CONF"-Klasse und alle enthaltenen instanzieren Die einzelnen Methoden kannst du innerhalb einer Funktion dann wie folgt ansprechen: function tu_was(){ global $oConf; $oConf->oDb->connect(); # connect-Methode der Klasse dev_db wird aufgerufen .... } Grüße, Mathias
php::bar PHP Wiki - Listenarchive