echo $begrüßung;
In der realen Umsetzung (das verkürzte Beispiel war ja nur zur Demonstration des Problems) wird also jede Unterklasse eine Methode Bar1::getInstance() haben, die der Methode Foo::getInstance() als Parameter den Klassennamen mitliefert. Diese bildet dann gegebenenfalls ein neues Objekt mit return new $objectName;.
Ich sehe momentan keinen Vorteil, die deine Methode gegenüber einem simplen
$instance = new classname();
bringt. Was versprichst du dir von deiner Vorgehensweise? Oder anders gefragt: Was ist dein eigentliches Problem?
echo "$verabschiedung $name";