phpbar.de logo

Mailinglisten-Archive

[php] Auf die instanziierende Klasse zugreifen

[php] Auf die instanziierende Klasse zugreifen

Roland Tapken tapken at engter.de
Sam Sep 13 17:13:06 CEST 2003


Hi!

> 	{
> 		// Greife bitte hier auf eine Methode zu, die es in Haupt gibt
> 		etwa so:
>   		$super->irgendwas();

> 
> Geht sowas oder macht man sowas nicht mit PHP?
> In diesem Sinne schönen Samstag und Danke!

Nicht in dem Verfahren und ich würde mich wundern wenn es in einer
anderen Programmiersprache so geht. die testklasse weiß ja von der
Hauptklasse nix...

Gibt nun mehrere möglichkeiten: 
a) Du erweiterst ("extends") die
Hauptklasse mit der Testklasse. Dann kannst du aber nicht von der
Hauptklasse aus auf Funktionen mit der Testklasse zugreifen.

b) Zugriff auf die Klasse über Haupt::irgendwas(). Geht aber nicht
immer, da du nicht auf ein Objekt zugreift.

c) Beim initialisieren der Test-Klasse übergibst du das Objekt der
Hauptklasse als (referenz-)parameter. Ob das wirklich so mit php
funktioniert kann ich dir aber nicht sagen. Beispiel:

class Haupt {
  var $test;

  // Constructor
  function Haupt() {
    $this->test = new Testklasse($test);
  }
  function irgendwas() {
    echo "foo";
  }
}

class Testklasse {
  var $parent;
  // Constructor
  funtion Testklasse(& $parent) {
    $this->parent = & $parent;
    $this->parent->irgendwas();
  }
}

Hab's nicht auf Fehler geprüft und ob es wirklich so funktioniert weiß
ich auch nicht. Betrachte es einfach als Vorschlag für einen Ansatz :)





bye, Roland
-- 
Beyond the rim of star-light
My love is wand'ring in star flight
I know he'll find in star-clustered reaches
Love, strange love a star woman teaches
I know his journey end never
His star trek will go on forever.
But tell him while he wanders his starry sea
Remember, remember me.
  - Gene Roddenberry, "Theme from Star Trek"

php::bar PHP Wiki   -   Listenarchive