Nicht größer ist nicht gleich kleinergleich
Abgelegt unter Code am 30.09.2009In einer Kraut und Rüben – typisierten Sprache wie PHP ist das Gegenteil von Größer ( > ) nicht unbedingt Kleinergleich ( <= ).
Immer wieder komme ich auf Sachen, die ich so löse:
if(!($id > 0))
Wenn ich herausfinden will ob z.b. eine User-Id wirklich gültig (also größer Null ist) ist. In der kleinen Zeile sind gleich mehrere Annahmen:
- Größer kann etwas nur sein, wenn es auch eine Zahl ist. Ist also auch eine Prüfung, ob es sich um eine Zahl handelt.
- Die Variable kann auch (wenn schlecht programmiert wurde) null sein oder einen String enthalten.
Wäre
$id = “hi”;
Würde eine umgestellte Abfrage
if($id <= 0)
nicht greifen. In dem Fall liegt ja auch wieder eine Prüfung auf eine Zahl inne. Nur diesmal nicht zu unserem Vorteil sondern zu unserem Nachteil. Währenddessen die ursprüngliche Abfrage auch kein Problem damit hat, wenn $id ein String ist.
