Mailinglisten-Archive |
Servus, > > 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. Hmmm...aber wenn ich mir das so betrachte, ist doch da kein Unterschied zu deiner Lösung. Du erstellst eine Variable, in dem Fall "$this", und verbindest so alle. Und so verknüpfe ich ebenfalls alle. Die Klasse (Funktionen) für die z.B. DB werden dem Object $Obj->DB zugewiesen und widerum die "CONF" ist unter $Obj->CONF zu finden. Dadurch sollte das Problem des überschreibens des alten Eintrags vermieden sein, oder seh ich das falsch? Thx und Grüße Tino > > 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 > -- > ** http://www.php-center.de ** > Die PHP-Liste: mailto: php_(at)_phpcenter.de > http://lists.phpcenter.de/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive