Rolf B: if/else

Beitrag lesen

Hallo Bernd,

$Projekt == "0";

ist ein Test, keine Zuweisung. Diese Zeile ist ohne jede Wirkung.

Der Verzicht auf die else-s bewirkt, dass die if nacheinander abgearbeitet werden und der letzte, der TRUE meldet, gewinnt. Im Falle von "" in $Projekt ist es der letzte if. Im Falle von "0" in $Projekt ist er es aber auch. Deswegen ist dein Code falsch und deswegen habe ich ein Minus gesetzt. Was Du gebaut hast, ist nicht nur keine Lösung, es führt zu falschen Ergebnissen.

Dein Problem ist PHPs Typangleichung, die beim == passiert. NULL, 0, und "" werden da alle als gleich angesehen. "" und "0" sind verschieden, null und "0" auch. Aber 0 und "0" sind wieder gleich.

Um die richtige Formulierung zu finden, müsste man wissen, welchen Typ der Wert in $Projekt hat, wenn die Variable mit einem Wert gefüllt ist. Ist es eine Zahl, oder ein String? PHP erlaubt es, damit zu schludern, aber wenn man ungenau arbeitet ist die Konsequenz ein falsches Programm.

Rolf

--
sumpsi - posui - clusi