Sven Rautenberg: Innerhalb einer Klasse auf Instanz anderer Klasse zugreifen

Beitrag lesen

Moin!

ich versuche gerade vergebens, innerhalb einer Klassendefinition auf eine Instanz einer Anderen Klasse zuzugreifen. Etwa so:

$db1 = new Db();
class blabla {
...

function sach() {
    $db1->tudies();
}
}

Nun wollte ich fragen, ob so etwas generell unmöglich ist, oder ob es da einen Trick oder so gibt, so etwas tun zu koennen

Deine Vorgehensweise ist ziemlich übel in meinen Augen. Und deshalb vermutlich nicht von Erfolg gekrönt (zum Glück).

Sinn von objektorientierter Programmierung ist ja, dass man auf interne Abläufe eines Objekts keine Rücksicht mehr nehmen muß.

Wenn man aber deine Klasse blabla einsetzen will, muß man vorher zwingend eine Instanz der Klasse Db mit dem vorgeschriebenen Namen $db1 instantiieren. Das ist böse.

Lösung: Übergib der Methode sach() eine Referenz auf die Db-Instanz. Dann kannst du innerhalb der Methode auf diese Instanz unter einem anderen Namen zugreifen, erhälst aber die namensmäßige Unabhängigkeit.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|