Moin.
Also ich mache mir gerade Gedanken zu einer etwas komplexeren Objektstruktur.
Wenn ich es mal ganz einfach zusammenfasse, dann habe ich eine Class, in der ich die Variablen
private $fehler;
private $template;
benutze, um darin mit $this->fehler = new fehler; und $this->template = new templates; die Objekte des Fehlersystems und des Templateobjekts anzulegen.
Früher machte man das ja scheinbar mit &new und nun nur noch mit new. Habe ich zwar nicht ganz verstanden, aber es funktioniert so auf jeden Fall. Das hatte ja was mit Referenz und Anlegen zu tun.
Wenn ich nun davon ausgehe, dass meine Templateclass auch auf die Fehlerclass zugreifen können soll, dann muss ich das ja mit ner Referenz machen. Ich will die Class ja nicht nochmal anlegen, wenn einmal genügt.
Ich dachte, dass ich dazu einfach in templates einen Konstruktor anlege, dem ich dann die Variable $fehler übergebe und diese die Referenz auf die Fehler-Class enthält. Diese Referenz muss ich ja nur in der fehler-Class als Variable ablegen, um darauf zugreifen zu können.
Daher:
Hauptobjekt:
<?php
class system {
private $template;
private $fehler;
$this->fehler = new fehler;
$this->template = new templates($this->fehler);
}
?>
Templates-Objekt:
<?php
class templates {
private $fehler;
function construct ($fehler){
$this->fehler = $fehler;
}
public function test ($test){
if (!$test)
$this->fehler('Fehlertext';
# Hier kommt ein Fehler: "Fatal error: Call to undefined method templates::fehler() in [...]"
}
}
?>
Wie schaffe ich es also von einem Objekt auf ein anderes Objekt zu verweisen, wenn beide Objekte in einem übergeordneten Objekt angelegt wurden?
Danke schonmal für alle Antworten!