echo $begrüßung;
Du kannst keine lokalen Funktionen in PHP definieren!
Ergänzend dazu: Man kann sie zwar so verschachtelt notieren, sie werden aber nicht, wie vielleicht gedacht, angelegt. Funktionen (und Klassen) sind immer global. Sie sind auch dann noch vorhanden, wenn der Gültigkeitbereich verlassen wurde, in dem sie deklariert wurden.
Es ist ein Fehler, innerhalb einer Funktion wieder eine Funktion zu definieren. Das wird dir spätestens dann klar, wenn du die äußere Funktion ein zweites Mal aufrufst.
Da die Funktion ja global angelegt wurde, ist der Name bereits vergeben und ein fataler Fehler wird ausgelöst (Cannot redeclare ...).
Definiere immer alle Funktionen auf globaler Ebene, nie ineinander verschachtelt!
Zumindest sollte man solch offensichtliche Verschachtlungen vermeiden, weil sie Lokalität suggerieren, die jedoch nicht gegeben ist.
Solch eine Verschachtlung ist dennoch sinnvoll, sonst hätte man sie ja gleich verbieten können. Beispiel: Gegeben sei eine Funktion, deren Aufgabe es ist, Code-Dateien nachzuladen (per include & co.). Wir befinden uns also innerhalb dieser Funktion, führen das include aus und treffen dabei auf Funktionsdefinitionen in der zu inkludierenden Datei. In den seltensten Fällen würde nun jemand ein Verhalten benötigen und erwarten, das diese Funktionen als lokale Funktionen lädt. Stattdessen landen die Funktionen aus der include-Datei im globalen Namensraum und sind von überall her aufrufbar. (__autoload() ist eine Anwendung des Prinzips, wenn es auch mit Klassen statt mit Funktionen arbeitet.)
Warum liest du eigentlich nicht häufiger hier im Forum zu PHP-Themen mit? Das hätte dich im Laufe der Jahre schon deutlich weiter nach vorn gebracht in deinen Programmierkenntnissen, und du würdest nicht immer auf solche Advanced-n00b-Fallen auflaufen.
Möglicherweise ist das ein Nullsummenspiel. Die Zeit, die man beim Lernen durch Mitlesen und ggf. auch Recherchieren für Probleme anderer Leute verbringt, ist man "unproduktiv". Man vermehrt zwar das eigene Wissen, lernt Verfahren und Lösungswege kennen, die man noch nicht kannte, und kann die produktiven Probleme schneller lösen oder von vornherein vermeiden. Doch das ist ein stets zu wiederholender Prozess. Die eingesparte produktive Zeit benötigt man zur Weiterbildung, wenn man am Ball bleiben will. Der vielleicht einzige Vorteil ist: die Fehler der Anderen frustrieren einen selbst nicht. Außerdem muss man sich nicht auf seine eigenen Forumsfragen sagen lassen, dass dies ein allseits beliebtes Fettnäpfchen ist, in das man sich gerade hineinprogrammiert hat.
echo "$verabschiedung $name";