phpbar.de logo

Mailinglisten-Archive

[php] =?ISO-8859-1?Q?AW=3A_=5Bphp=5D_OOP_Verst=E4ndnis?=

[php] AW: [php] OOP Verständnis

Gloss Mathias php_(at)_phpcenter.de
Wed, 7 Aug 2002 14:34:46 +0200


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