Dann drückst du dich aber ziemlich umständlich und irreführend aus.
wobei der Inhalt dieser in der parent-Klasse definiert wird.
Davon seh ich aber nichts. Was meinst du damit?Schau genauer hin ;) Der Inhalt, respektive 'Hund', wird in der parent-Klasse, respektive foo, definiert.
Der Inhalt schon, aber wo ist die Variable dazu? Ich sehe immer noch keine Klassenvariable.
// 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 ;-)Sehschwäche? In der Geschwister-Klasse, respektive start, wird die Variable, respektive $a, definiert.
Die wird nicht in der Klasse definiert, sondern in der Methode namens run. Außerhalb gibt es sie nicht. Das ist ein ziemlicher Unterschied!
$a ist dort wo ich es ausgebe, in bla->test(), global definiert.
Lies dich mal in Gültigkeitsbereiche von Variablen ein. Wenn du in einer Methode was deklarierst, gibt es das nur da. Wenn du sagst "ein $a von außerhalb soll auch in meiner Methode gelten" (das tut global), dann muss dieses $a auch definiert sein. Du hast aber keins definiert.
Für mich klingt es als sollte eine Instanz die andere kennen, damit sie auf die Variablen gegenseitig zugreifen können.
Genau das. Wobei ich auch überlegt habe ob ich in der parent-Klasse (foo) den Wert irgendwie speichern kann so, dass alle abgeleiteten Klassen gemeinsam mit dem selben Wert arbeiten/bearbeiten können.
Dann müsste es aber ein statischer Wert sein, damit alle auf die selbe Instanz der Variable zugreifen.
Was genau solls denn tun? Erzähl mal was dahinter steckt, wenns geht als richtges Beispiel wo man sich vorstellen kann was du meinst. Dann hat dir sicher jemand einen passenden Tip.