2011-07-28 5 views
-1

フロート0が空である理由を誰にも説明できますか?以下のコードは、私は以下のコードにした場合、それは「奇妙な」と表示することはありません一方浮動小数点数0はPHPで空の文字列として返されます

$empty = (float)"0"; 
if($empty == "") 
    echo "weird"; 

を「奇妙な」と表示されます。

$empty = (float)"0.01"; 
if($empty == "") 
    echo "weird"; 

答えて

4

PHPで、次の式が真であるので、これは次のとおりです。

0 == "" 
0.0 == "" 

ないここ$emptyが空の文字列""ですので。

あなたは===を使用して平等のチェックを入力実行することができ、そして予想通りこれらの表現は、偽表示されます。

全くない奇妙な
0 === "" 
0.0 === "" 
+0

ああ大丈夫です。 – lilsizzo

0

は、それが期待されます。 PHP 0では空の文字列と同様にFALSEと評価されます。これを避けるには、厳密な等価性をテストする===を使用してください(a === bは "a == bを行い、リンゴをリンゴと比較しています"、a == bは "これらのものは同じ値ですか? (私はリンゴやヤギを比較していた場合、それは問題ではありません))

このお試しください:それは比較はPHPでどのように機能するか緩んだので

$empty = (float)"0"; 
if($empty === "") 
    echo "weird"; 
関連する問題