wobei der Inhalt dieser in der parent-Klasse definiert wird.
Davon seh ich aber nichts. Was meinst du damit?
// die Klasse soll auf eine Variable seines Geschwisters zugreifen
Dazu sollte sie die Instanz des Geschwisters kennen. Und ich seh immer noch keine Variable der Klasse ;-)
$a = $this->bar(); // $a soll in bla->test() verfügbar sein
Das heißt? Du weißt der Variablen $a (die nur in der Funktion gültig ist) das Ergebnis aus this->bar zu, also $a = 'hund'. Was hat das mit test() zu tun?
Wie bekomme ich also den Inhalt von $a nach foo->test()?
Lass jede Instanz wissen wie die andere Instanz heißt.
Mir ist auch nicht ganz klar wieso $a in meinem Beispiel NULL ergibt.
Weil $a nirgends global definiert ist.
Vielleicht guckst du dir nochmal deinen Code durch, was du da wirklich machst und überlegst nochmal was du wirklich willst. Ich glaub ich hab das immer noch nicht ganz kapiert.
Für mich klingt es als sollte eine Instanz die andere kennen, damit sie auf die Variablen gegenseitig zugreifen können.