echo $begrüßung;
» Das Wesentliche ist doch die ZVAL-Struktur.
Das ist mMn schon einen Schritt zu spät.
Zuerst gibt es den ZVAL-Container, in dem der Wert lagert. Was darauf zeigt sind nachfolgende Schritte, denn erst wird ein Wert erzeugt, dann wird er einer Variablen zugewiesen oder auch nicht. Beachte: ZVAL wie Value und nicht ZVAR wie Variable.
» Vielleicht zeigt ein Variablenname (oder auch mehrere) auf sie, vielleicht ein Array-Element (oder auch mehrere), vielleicht eine Objekteigenschaft (oder auch mehrere).
Es darf aber ein Variablenname (aus demselben Scope) nicht mehrfach darauf zeigen. Das wird ja sicherlich auch irgendwo überprüft. Jeder Variablenname muss innerhalb seines Scopes einmalig sein.
Irrtum. Durch PHPs Verhalten, eine echte Kopie erst dann anzulegen, wenn die Werte auseinanderlaufen, können durchaus mehrere Variablennamen auf den gleichen ZVAL-Container zeigen. Ganz abgesehen von Referenzen.
Schau dir auch mal den Artikel References Explained (by Derick Rethans) an. Ein Link dorthin "versteckt" sich im Kapitel zur Funktion debug_zval_dump().
echo "$verabschiedung $name";