Moin!
Was elegant ist müßte erst mal definiert werden.
Und ich schrieb, dass eine Notice grundsätzlich nicht weiter schlimm ist.
Eine Notice ist schlimm.
Wenngleich der Programmablauf dadurch im Ergebnis nicht weiter verändert wird, so hat man dennoch mit den Auswirkungen solcher Notices zu kämpfen:
1. Notices müssen erkannt und irgendwo hin gemeldet werden. Das kostet durchaus Performance, vor allem dann, wenn diese Notices in ein Logfile auf Festplatte geschrieben werden.
2. Notices helfen Fehler vermeiden, denn nicht existierende Variablen sind ein Programmfehler. Warum will man eine Variable verwenden, die nicht existiert? Das macht das Programm undurchsichtiger, denn anscheinend könnte es irgendwie wohl doch dazu kommen, dass diese Variable existiert, sonst wäre der Code so nicht geschrieben worden. Oder es ist tatsächlich ein Tippfehler, und eine ganz andere Variable war gemeint.
3. Notices bei nicht existierenden Array-Keys sind ähnlich zu behandeln. Code, der stur davon ausgeht, dass alle Keys existieren, verschleiert die tatsächliche Datenstruktur des Arrays, denn in der Realität sind eben nicht alle Keys vorhanden, sondern manche optional. Dass Dinge optional sind, sollte im Code dokumentiert sein, indem genau diese isset()-Prüfung stattfindet. Umgekehrt bedeutet dann die Abwesenheit solch einer Prüfung, dass der Array-Key garantiert existiert - und wenn er das nicht tut, ist es tatsächlich ein Programmfehler.
- Sven Rautenberg