echo $begrüßung;
Variablen ohne Inhalt gibt es eigentlich gar nicht.
Na ja, aber laut notice halt undefiniert.
Ja, in dem Fall, aber kannst du auch garantieren, dass das immer so ist? Wirklich immer?
Siehst du auch ein Sicherheitsproblem bei globals OFF wenn Variabeln undefiniert sind?
Derzeit ist mir keine Lücke bekannt, die auch bei ausgeschaltetem register_globals Variablen einschleppt. Es muss aber nicht unbedingt von außen kommen. Auch selbst verschuldete nicht beachtete Fehler können Folgen nach sich ziehen.
Beispiel:
$resultset = array();
while ($row = datenbankabfrage())
$resultset[] = $row;
foreach($resultset as ...)
...
Wenn du nun die erste Zeile nicht notierst, und die Datenbankabfrage, die sonst immer ein Ergebnis brachte, diesmal einfach mal keins liefert, gibt es $resultset nicht. foreach reagiert darauf etwas heftiger als nur mit einer Notice.
Außerdem ist es durchaus menschlich, bei größer werdendem Code nicht zu bedenken, dass man einen Variablennamen bereits an anderer Stelle schon einmal verwendet hat, der nun auf einmal einen übrig gebliebenen Wert enthält. Und wie es der Zufall so will, merkt man das bei Testen seines Scripts nicht.
Meine Erfahrung lehrt mich einfach, auf explizite Initialisierung nicht zu verzichten.
echo "$verabschiedung $name";