Einzelnen Beitrag anzeigen
Alt 28.10.2005, 17:42  
Buhmann
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard Instanz einer Klasse in einer anderen Klasse verwenden

naja vllt verwirrt der Titel etwas, aber das ist auch der Grund, warum mir nichts einfällt, wie man zu dem Thema eine Suchanfrage formulieren könnte.

Ich habe also zwei Klassen
PHP-Code:
<?php
class {
   public function 
hallo() {
      echo 
"Hallo Welt";
   }
}

class 
{
   public 
$referenz;
   function 
__construct(&$a) { 
      
$this->referenz &= $a//Referenz auf die Instanz abspeichern
   
}
   function 
hallo() {
      
$this->referenz->hallo(); //Eine Funktion in der Klasse A aufrufen - hier tritt der Fehler auf
   
}
}

$a = new A();
$b = new B(&$a);
$b->hallo();
?>
Zitat:
Fatal error: Call to a member function hallo() on a non-object in D:\Server\xampp\htdocs\tests\test.php on line 14
Ich will in der Klasse B eine Instanz der Klasse A benutzen, allerdings scheine ich da etwas nicht richtig verstanden zu haben. Zeile 14 ist natürlich
Code:
$this->referenz->hallo();
Wie kann ich also eine bestehende Instanz der Klasse A in der Klasse B benutzen?

Ich habe auf php.net im Manual (http://www.php.net/manual/de/language.oop5.php) nachgeschaut, aber nichts gefunden. Ich kann mir außerdem nicht wirklich vorstellen, wie man eine Suchanfrage zu dem Thema machen könnte (hab vieles ausprobiert, aber nie das gefunden, was ich meinte), habt also bitte Rücksicht mit mir

[EDIT]
So ein dreck - hab den Wald vor lauter Bäumen nicht gesehen. Ich glaube ich habe es mit den Referenzen ein wenig übertrieben, das & in der funktions-parameterliste hat gereicht. Wenn man die anderen löscht, funktioniert das ganze.
Sry für diesen nun sinnlosen post...
Buhmann ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten