phpbar.de logo

Mailinglisten-Archive

AW: [php] seltsames Verhalten bei Variable=0

AW: [php] seltsames Verhalten bei Variable=0

Wolfgang Hauck php_(at)_phpcenter.de
Fri, 31 May 2002 12:39:54 +0200


>Tach , ihr listigen Leute!

>Mir ist da heute ein seltsames Verhalten untergekommen. Kann mir das mal
einer
>erklären? Oder ist dieser Bug (wenns denn einer ist) bekannt?

>$var=0;
>if ($var=="")
>{
> echo "Unsinn";
>}

>Ist ja auch in Ordnung. Aber jetzt kommt die Krönung

----------------------------------------

><?
>$var=7;    //nicht  0 sondern 7
>if ($var=="")
>{
> echo "Unsinn";
>}
>else
>{
> echo "im Lack";
>}
>?>

>Ratet mal, Ausgabe : im Lack

>Wo ist bitte der Unteschied zwischen Fall 1 und Fall 3? Das halte ich
schon
>für einigermaßen blödsinnig.

Hi Sibylle,

Ich kenne diese Problematik auch. Das liegt einfach daran, dass php die
Variable als String auswertet (In php gibt es keine eindeutige
Variablendefinition). Wenn du jetzt x=0 übergibst, wird ein Integer 0 in
diese Variable eingetragen. Wenn nun if($x == "") liest er chr(0) und was
ist das wohl? Das Ende eines Strings! Also ist dieser Ausdruck wahr.

Abhilfe:

$x = "0";

oder

$x = $x."";

Einfach die Variable in nen Sting umwandeln (Wenn du damit weiterrechnen
willst, kannst du das ohne weiteres machen php macht das automatisch).


php::bar PHP Wiki   -   Listenarchive