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