ホームページ  >  記事  >  バックエンド開発  >  PHPにおける0、" "、null、falseの違い

PHPにおける0、" "、null、falseの違い

WBOY
WBOYオリジナル
2016-08-08 09:26:21830ブラウズ

PHP の 0、""、null、false の違いをまだ理解していない人が多く、これらの違いはデータ判定の正確性と安全性に影響を与えることがあり、プログラムのテスト実行に多大な問題を引き起こします。
まず例を見てみましょう:

$str1 = null;

$str2 = false;

echo $str1==$str2 ? '等しい' : '等しくない';

$str3 = " ";

$str4 = 0;

echo $str3==$str4 ? '等しい' : '等しくない';

$str5 = 0;

$str6 = '0';

echo $ str5= ==$str6 ? '等しい' : '等しくない';

$str7=0;

$str=false;

echo $str7==$str8 ? '等しい' : '等しくない';

? >
実行結果:

//等しい、等しい、等しくない、等しい。
その理由は、PHP の変数は C 言語の構造体に格納され、空の文字列、NULL、および false はすべて値 0 で格納されます。この構造体には zend_uchartype; のようなメンバー変数があり、型を保存するために使用されます。変数の値、空の文字列の型は string、NULL の型は NULL、false はブール値です。

これを出力するには、echo gettype(''); を使用できます。 === 演算子は値を比較するだけでなく、型も比較するため、3 番目の演算子は false になります。
したがって、=== は次の function と等しいと言えます:

functioneq($v1,$v2) {
if(
$v1==$v2&&gettype($v1) ==gettype($v2)) {
return
1;
} else {
return
0;
}
}

空の文字列 ( '')、false、NULL、および 0 は値が同じですが、型が異なります。

注:

NULL は 2 つの場合に特殊な型です

1. $var = NULL;
2. $var;
3.""、0、"0"、NULL 、FALSE、配列()、var $var; および属性のないオブジェクトは、var が空の場合、TRUE が返されます。
上記では、PHP における 0、" "、null、false の違いを、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。

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