echo $begrüßung;
dann wäre dir nämlich aufgefallen, dass die Klammern um den Inhalt der Schleife fehlt (du solltest überhaupt etwas konsequenter Klammern setzten, um einige if- und else-Blöcke fehlen ebenfalls Klammern[1]).
Nein, die fehlen nicht, wenn nur eine Anweisung folgt. [*]
Damit wird afaik nur die erste Zeile als Inhalt der Schleife angesehen (in deinem Fall also der Kommentar)
Nicht die _erste_Zeile_ interessiert sondern die _folgende_Anweisung_. Kommentare gelten jedoch nicht als Anweisung.
ich vermute mal, dass dir Tom das sagen wollte.
Nein, das wollte er nicht sagen, sondern dass - wie immer - eine Kontrollausgabe von Variableninhalten, die anscheinend nicht das enthalten was man vermutet, und das am besten mit var_dump()[**], entscheidende Hinweise zur Fehlersuche ergibt.
Zum Beispiel könnte man dann zu der Erkenntnis gelangen, dass die Schleife etwas anderes erzeugt als erwartet und vielleicht auch noch, dass sie dort völlig fehl am Platze ist.
echo "$verabschiedung $name";
[*] Inwieweit die Klammern der Bequemlichkeit des Programmierers nützlich sind, später eine Schleife/if-Anweisung zu erweitern, ist dabei nicht relevant.
[**] var_dump() gibt im Gegensatz zu echo und print_r() den Typ der Variablen mit aus. Damit kann man Integer-0, Leerstring, false und null voneinander unterscheiden.