Willkommen in der Webstatt Zum Webstatt Blog und Stories
der_nic der_nic am 16.05.07 23:58

Wenn ich in PHP ein folgendes Konstruckt habe:
class A {
public $bla = "Hallo";
public $b;
public function __construct() {
$this->b = new B();
}
}
class B {
public function __construct() {
// ...
}
}

$a = new A();

Und ich jetzt von der Klasse B aus in der Funktion auf das A-Object zugreifen möchte, dass das B-Object erschaffen hat, wie ist dann der Syntax? Zb wenn ich in der __construct Funktion von B auf die Variable $bla vom A zugreifen möchte?

Ich habe bisher nur die Möglichkeiten gefunden beim Erstellen eines B-Objectes mit $this das aktuelle A-Object als Parameter mitzuliefern und über extends die Variable zu übergeben. Gibt es auch eine direkte Methode ohne extend oder $this???

netcup.de Warum gibt es hier Werbung?
nuit nuit am 17.05.07 01:52

warum willst du darauf zugreifen? macht in meinen augen immo keinen sinn?
weil.....welches A-Object meinst du?

Wasili am 17.05.07 12:22

Mh... Ich gib für Subklassen immer als ersten Parameter eine Referenz auf das Mutterobjekt weiter.

class A {
public $bla = "Hallo";
public $b;
public function __construct() {
$this->b = new B($this);
}
}
class B {
public function __construct($parent) {
// ...
print $parent->blah;
}
}

$a = new A();


Du musst einfach darauf achten, dass in PHP4 das $this so geklont wird, und du &$this übergeben musst...
Eine andere Möglichkeit kenn ich nicht.

der_nic der_nic am 17.05.07 12:53

Nun ja es macht nicht wirklich Sinn, aber für diesen bestimmten Code brauch ich es (weil ich zu faul bin das Ganze umzuschreiben:P)
Aber ich werde es wohl mit $this als Parameter tun müssen...

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt