Notice: Undefined variable

GruenSein

Aktives Mitglied
Thread Starter
Dabei seit
15.03.2007
Beiträge
345
Reaktionspunkte
32
Hallo zusammen!

Ich bastele seit einiger Zeit hin und wieder an ner Webpage, die unter anderem PHP nutzt. Bis vor einiger Zeit lief das ganze (von meinem unprofessionellen Standpunkt aus gesehen zumindest) auch ganz ok, dh. ohne Fehlermeldungen und funktionsmäßig wie gewollt.
Seit neustem bekomme ich dauernd folgende Meldung (für jede benutzte Variable einmal, wie es scheint):

Notice: Undefined variable: xy in line z
bzw.
Notice: Undefined index: xy in line z

Ich nehme mal an, dass der Hoster irgendwas am PHP-Interpreter getan hat, wodurch der jetzt pingeliger ist. Allerdings funktioniert das Skript immer noch genau wie vorher, aber es sieht natürlich super-hässlich aus und verwundert mich auch in sofern, als dass ich der Meinung war, man müsse Variablen in PHP nicht deklarieren. Meines Wissens gibt es zwar eine Möglichkeit Fehlermeldungen in PHP zu unterdrücken, allerdings ist mir unwohl dabei, das Ganze dann einfach so "unsauber" weiterlaufen zu lassen.

Ich hoffe mal, dass sich diese Meldungen auf unsauberen Programmierstil zurückführen lassen und ich das Problem relativ schnell beheben kann. Ich bin für jeden Tipp dankbar.
 
Hört sich an als ob Dein Hoster das Error Reporting raufgesetzt hat.

Füge mal folgendes ganz oben in jede Datei die solche Notices erzeugt bzw. in eine global eingebundene Datei ein:
Code:
error_reporting(E_ALL ^ E_NOTICE);

http://php.net/error_reporting
 
Danke Sehr. So geht's. Allerdings habe ich die Meldungen doch jetzt nur ausgeschaltet, oder? Besteht also kein zwingender Bedarf etwas am Skript zu korrigieren?
 
Nein, kein zwingender Bedarf. 99% aller Scripte würden solche Notices werfen, wenn sie könnten. :)
 
Notices ändern an der Ausführbarkeit eines Skripts nichts. Es sind eben nur Hinweise auf unsauberen Code. Erst Warnungen (Warnings) oder wirkliche Fehler (Error) würden das Skript entweder direkt abbrechen oder evtl. Fehler bei der Ausfühung provozieren.

Die Notice von oben sagt eben, dass eine Variable nicht definiert wurde bzw. das ein Array-Index nicht indiziert wurde.

Beheben ließe sich das, wenn Du die Variable vor der ersten Nutzung einmal initialisierst. Zum Beispiel so:
PHP:
$variable = '';
$variable = $zweiteVariable;
Array-Index natürlich analog.
PHP:
$array['index'] = '';
$array['index'] = $arrayWert;
 
Zurück
Oben Unten