Tach!
Welchen Gültigkeitsbereich und welche SIchtbarheiten haben Klassen und ihre Instanzen in PHP?
Es gibt keinen Unterschied zu Funktionen und Variablen anderen Typs.
class B {
## Definitionen
$__A = new A;
}
> ist das möglich? Ist A in B sichtbar und damit benutzbar?
Nein, ohne eine Methode drumrum ist das ein Syntaxfehler. Da fehlt noch ein Zugriffsmodifizierer (public (oder var), protected oder private). Anschließend ist die Eigenschaft über $this->\_\_A in allen Methoden verfügbar.
> Wann geht die Instanz $\_\_A kaputt (wird beseitigt)?
Wenn sie nicht mehr referenziert wird. $this->\_\_A ist nur eine mögliche Referenz auf das Objekt. Vielleicht hast du ja noch mehr darauf im Laufe des Scripts erstellt. Die Frage an sich ist aber relativ uninteressant. Sobald du keine Referenz mehr auf das Objekt hältst, hast du sowieso keinen Einfluss mehr darauf und an seinem Zustand (noch da oder schon weggeräumt) kannst du nichts mehr ändern. Eher interessant wäre, wann der Destruktor aufgerufen wird. Aber das ist im PHP-Handbuch beantwortet.
> Wie rufe ich die Methoden von A mit Hilfe der Instanz $\_\_A in $\_\_B auf?
OOP-Gundlagenwissen. Du hältst entweder in B eine Eigenschaft, die A referenziert ($this->\_\_A) oder eine lokale Variable in einer Methode ($foo). Anschließend folgt -> und der Name der Eigenschaft (ohne $) oder Methode.
> Wie ist das bei geschachtelten Klassen, also wenn z.B. class C innerhalb von B deklariert und definiert wird?
Gibt es nicht.
dedlfix.