phpbar.de logo

Mailinglisten-Archive

[php] undefinierte Variablen

[php] undefinierte Variablen

Thomas Koudela thomas at koudela.net
Do Sep 8 15:23:10 CEST 2011


> "sauberes" Progammieren:
> Wodurch wird das Skript fehlerfreier wenn Variablen vor abfrage auf
> existenz geprüft werden. Einleuchen würde es mir in diesem Fall wenn
> eine nicht benutzte Variable den Wert 0 enthalten würde,
> dies ist aber nicht so.

PHP bietet durch seine Unterscheidung zwischen "==" und "===" die
Möglichkeit für schlankes Programmieren. Allerdings wird dies mit einer
erhöhten Fehleranfälligkeit bei unsauberem Programmieren erkauft.

Angenommen:
if ($_POST['formularwert'] == 0) include '/pfad/wert0.php';
else if ($_POST['formularwert'] > 0) include '/pfad/berechneErgebnis.php
else if ($_POST['formularwert'] < 0) include '/pfad/hinweis.php
else include '/pfad/startseite_mit_formular.php';

Beim Lesen dieses Codestückes geht man leicht davon aus, dass solange
kein Formular gesandt wurde '/pfad/startseite.php' geladen wird. Da
undefined aber einfach gleich 0 ist, wird das Formular nie angezeigt.

Hier ist das leicht zu erkennen, aber in einem komplexeren Programm und
einer anderen Situation (z.B. wenn Du in Code von anderen arbeitest, den
Du Dir aus Zeitgründen nicht ganz durchlesen kannst) kann dies leicht zu
übersehen sein und dann können im Extremfall schon mal 1-2 Stunden für
die Fehlersuche drauf gehen. Wenn Du dann nicht nach Stunden, sondern
nach Ergebnis bezahlt wirst, hast Du wertvolle Lebenszeit in den Sand
gesetzt.

Die Notice-Fehlermeldung, wenn Du nicht prüfst (oder der für das
Codefragment Verantwortliche es nicht getan hat), hilft Dir dabei, dass
es nicht soweit kommt.

Gruß






--
Thomas Koudela
Programmierdienstleistungen von A bis Web

Mozartstraße 6
D-45529 Hattingen

+49 (0)2324 392320
www.koudela.net



php::bar PHP Wiki   -   Listenarchive