ホームページ  >  記事  >  バックエンド開発  >  空でない str==0 の結果は true です

空でない str==0 の結果は true です

WBOY
WBOYオリジナル
2016-06-23 14:18:031310ブラウズ

<?php      $str='asdfasdfa';     $bool = ($str==0);     echo $bool;?>

bool ここは実際に true....
なぜこれ


ディスカッションへの返信 (解決策)

あなたはこうです

<?php      $str='asdfasdfa';     $bool = ($str=='0');     echo $bool;?>

または
<?php      $str='asdfasdfa';     $bool = ($str===0);     echo $bool;?>

結果を見て、自分で分析してください

あなたはこんな感じです

<?php      $str='asdfasdfa';     $bool = ($str=='0');     echo $bool;?>

または
<?php      $str='asdfasdfa';     $bool = ($str===0);     echo $bool;?>

結果を見て、自分で分析してください
でも、php の操作 0 は空の文字列を意味していませんか?

上記のように

こんな感じで分析してみました

echo $str > 0 結果は空
echo $str echo $str == 0 結果は 1 です

$str は文字列であり、数値そのものではないため、数値としては、PHP では false==0 が true になります

データベースを検索したところ、varchar フィールドは次のとおりでした。 Col=0 で検索した結果が間違っていました。代わりに使用してください。col が null の場合は正しいです
同じ理由のはずです
http://bbs.csdn.net/topics/390529217

上記の説明は理にかなっています


実際には文字列が最初に変換されると思いました。 ! ! !

== 比較を行う場合、文字列と数値を比較する場合、文字列が 0 でない場合はすべて 0 に変換されます。比較結果は '===' を使用してみてください。比較してみるとわかります


文字列が最初に変換されると思っていましたが、0 が最初に文字列に変換されます。 ! ! !

はは、そのような実験を行ってもわかりません。それについては何もできません


これを実行したら

<?php      $str='asdfasdfa';     $bool = ($str=='0');     echo $bool;?>

または
<?php      $str='asdfasdfa';     $bool = ($str===0);     echo $bool;?>

結果を見て、自分で分析してください
しかし、phpの操作0は空の文字列を意味しませんか?
ふふふ

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。