ホームページ  >  記事  >  バックエンド開発  >  基本的な質問です、ありがとう

基本的な質問です、ありがとう

WBOY
WBOYオリジナル
2016-06-13 13:23:38746ブラウズ

基本的な質問です、ありがとうございます。
echo NULL == false?"true":"false"; // true を出力
echo false == '0'?"true":"false"; // true を出力

次の出力が false になるのはなぜですか?
echo NULL == '0'?"true":"false"; //出力 false


PHP の変数は C 言語の構造体に格納され、空の文字列と NULL と false が格納されます。値は 0 です。
上の文は正しいですか?

-----解決策---------
php は弱い型付け言語です。
したがって、これを
echo false == 0?"true":"false"; に変更すると、出力 true

も true になるため、' の判断だけに頼ることはできません。 0' を使用しているので文字列型です
型比較は行いません

文字列の 0 を判定したい場合は
echo false == とします。 = '0'? "true":"false"; // false を出力します

false は文字列ですか? なぜ echo false == '0'?"true":"false"; // true を出力します

引用:

null = = " の場合、'0' は文字列です”は本当だろう。



------解決策------------------

さあ、一緒にマニュアルを読んでください....http://ca.php.net/manual/en/ language.operators.comparison.phpさまざまなタイプとの中間比較表....

異なる型の変数を比較するには、まず型変換が必要です。変換方法によって最終結果が決まります。




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