Sven Rautenberg: Notice unitialized String..

Beitrag lesen

Moin!

if (!isset ($f) or $f[0]!=""){...

Zuerst mal ist in der if-Anweisung nicht richtig, dass du zwar testest, ob $f existiert, dann jedoch nicht prüfst, ob auch $f[0] existiert.

Das führt dann eigentlich direkt zur Lösung, die Existenz von $f[0] mittels isset() direkt zu prüfen. Das geht nämlich auch und erzeugt keine Notice.

Allerdings wäre es im Kontext der Funktion auslesen() hier zutreffender, wenn nicht nur die Existenz des allerersten Elements geprüft würde, sondern ob $f tatsächlich ein Array ist. Dies geht eigentlich am elegantesten, indem auslesen() im Fehlerfall nicht mit die() aussteigt, sondern einen definierten Wert (in PHP üblich ist false) zurückgibt, der dann abgefragt werden kann.

if ($f === false) { // irgendwas ist hier falsch gelaufen

So rein programmablauftechnisch ist diese Abfrage nämlich aktuell Blödsinn. Wenn bei der SQL-Abfrage was schiefläuft, dann endet das Programm mit die(). Hier nachträglich nochmal abzufragen bewirkt also sowieso nichts - auslesen() müßte geändert werden.

Ich bin sowieso der Meinung, Funktionen sollten niemals mit die() aussteigen, sondern definierte Rückgabewerte (notfalls eben false) liefern - dann muß das Hauptprogramm - und NUR dieses - entsprechend reagieren, falls was schiefgeht.

- Sven Rautenberg