echo $begrüßung;
if ($imageinfo = @getimagesize($filename))
Ohne zu testen:
if($imageinfo=getimagesize($filename) && !empty($imageinfo))
oder
... is_array($imageinfo) ...
Alles schön und gut (bzw. nicht, s.u.). Das Problem ist nur, dass getimagesize() zusätzlich zu dem Rückgabeergebnis false noch eine extra Warnung wirft, wenn es kein Bilddateinamen übergeben bekommen hat.
Auch mysql_connect() wirft im Fehlerfall eine Warnung. Diese Warnungen stören meist das Layout oder den Inhalt der Seite. Es gilt es also, zusätzlich zum Auswerten des Rückgabewertes die Ausgabe der Warnung unterdrücken, damit man dem Anwender eine hilfreichere Tröstmeldung oder eine Alternative präsentieren kann.
mysql_query() verhält sich im Gegensatz zu mysql_connect() ruhig, wenn bei der Ausführung ein Fehler auftritt. Voraussetzung ist allerdings, dass es nicht zu einem Folgefehler wegen des nicht erfolgreichen Connects kommt, sonst gibt es ebenfalls eine Warnung. Da man aber ordentlich programmiert hat, hat man ja den Fehler weiter oben schon abgefangen und es kommt gar nicht soweit ...
Für mysql_query() braucht man also den @-Operator nicht unbedingt. (Vielleicht für den bei Wald- und Wiesen-Scripts eher weniger wahrscheinlichen Fall, dass die Verbindung zwischen Connect und Query ausfällt.)
Es gibt also mindestens 2 sinnvolle Anwendungsfälle für den @-Operator.
if($imageinfo=getimagesize($filename) && !empty($imageinfo))
Die Prüfung auf !empty($imageinfo) ist überflüssig. getimagesize() liefert entweder false oder ein nicht leeres Array. Nicht leere Arrays werden durch PHPs impliziten Typecast zu true. if bekommt also entweder true oder false zu sehen. Damit hat man eine Aussage, ob es sich um ein von getimagesize() unterstütztes Bildformat handelt oder nicht.
if (is_array($imagesize = @getimagesize(...)))
...
oder meinetwegen auch in zwei Schritten
$imagesize = @getimagesize(...);
if (is_array($imagesize))
...
bringt das gleiche Ergebnis wie meine Variante nur dass hier noch ein zusätzlicher Funktionsaufruf (is_array()) erfolgt. Und wenn man es weiter (über-)treiben will kann man das Ergebnis auch noch mit true vergleiche:
if (is_array($imagesize) == true)
...
echo "$verabschiedung $name";