echo $begrüßung;
Mehr braucht man nicht, weil nichts passiert. Das Objekt ist einfach nicht im Scope, obwohl es da sein müsste.
Es bleibt dabei. Das Problem ist so nicht nachvollziehbar (von den Syntaxfehlern mal abgesehen). Ich kann nur die üblichen allgemeinen Hinweise geben:
Das error_reporting steht auf E_ALL (und display_errors auf on)? Verwende für Kontrollausgaben lieber var_dump() als echo, das erzeugt aussagekräftigere Ausgaben. Ein Scope wechselt nicht einfach so mit einer Kontrollstruktur (if, for, while etc.) Lediglich in Funktionen (und Methoden) gibt es einen eigenen Scope.
echo "$verabschiedung $name";