Mailinglisten-Archive |
Hallo Michael, > function is_foo($x) > { > if($x != "foo") > { > $re = "IST NICHT foo"; > } > else > { > $re = "IST foo!"; > } > return $re; > } > > [...] > > warum ist 0 = foo?! Das liegt an der Art des Vergleichs, die du ansteuerst. Du übergibst der Funktion einen Integer vom Wert 0. Dieser Integer soll mit einem String verglichen werden. Um dies zu ermöglichen muss der String erstmal nach Integer gecastet werden. Aus "foo" wird dann 0. Dann ist die Bedingung 0 != 0 entsprechend falsch. var_dump("foo"); var_dump((int) "foo"); Du solltest immer auf explizite Werte prüfen, z.B. $x === "foo" (wenn dus ganz genau machen möchtest). Gruß, Niels
php::bar PHP Wiki - Listenarchive