empty()、is_null()、isset()の真理値表(差分)
まず、これら 3 つの関数の機能説明を見てみましょう www.bKjia.c0m
isset は、変数がすでに存在するかどうかを判断します。変数が存在する場合は TRUE を返し、存在しない場合は FALSE を返します。
empty は変数が空かどうかを決定します。変数が空でない値またはゼロでない場合、empty() は FALSE を返します。つまり、""、0、"0"、NULL、FALSE、array()、var $var;、および属性のないオブジェクトは空とみなされ、変数が空の場合は TRUE が返されます。
is_null は変数が NULL かどうかを決定します
さて、これが一般的な説明ですが、この説明はすでに非常にわかりにくいので、以下の具体的な例で分析してみましょう。
これから、変数が "" または 0、または false または null である限り、これらの値がある限り、empty は true を返すことがわかります。
isset は、変数が存在するかどうかのみを判断します。変数が null または未割り当てでない限り、戻り結果は true になります。 isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。また、NULL バイト ("") は PHP の NULL 定数と同等ではないことに注意してください。
そして is_null はまさに isset の逆結果です。これは isset の逆演算である !isset と考えることができます。
上記の例から、次の結論を引き出すこともできます (これは将来プログラミングでよく使用されるでしょう):
$var は任意の型であると仮定します
empty($var) が true の場合、(bool)($var) は false になります。逆に。
is_null($var) が true の場合、isset($var) は false になります。逆に。
例:
$i=$j+1;
ここでの is_null($j) は true (変数 $j が事前に宣言されていないため、isset($j) は false であることがわかります)
その他の 2 つの注意点:
(1) empty() は変数のみを検出します。変数ではないものを検出すると解析エラーが発生します。つまり、次のステートメントは機能しません: empty(addslashes($name))。
(2) isset() は変数にのみ使用できます。他のパラメータを渡すと解析エラーが発生するためです。定数が設定されているかどうかを確認したい場合は、define()関数を使用します。
isset、empty、is_nullの違いをまとめてみました
先ほど紹介したこと: 変数とパラメーターの型のチェック、これはこれら 3 つの関数の違いの基礎であり、最も見落とされやすいものでもあります。インターネット上でこれら 3 つの機能を比較した記事をたくさん見かけました。これらがカバーされることはほとんどありません。次にお話したいのは、両方が既存の変数をチェックするときの違いです。
次のコードをコピーします
$b="";
$c=null;
//isset check
echo "isset","$a=$a",isset ( $a)?"define":"www.111cN.net undefine","rn";
echo "isset","$b=$b",isset($b)?"define":"undefine", " rn";
echo "isset","$c=$c",isset($c)?"define":"undefine","rn";
echo "isset"," $ b",isset($b)?"define":"undefine","rn";
$b=0;
echo "rnrn";
//空チェック
echo "empty","$a= $ a",!empty($a)?"空なし":"空","rn";
echo "空","$b=$b",!empty($b)?"空なし": " 空","rn";
エコー "空","$c=$c",!empty($c)?"空ではありません":"空","rn"
; echo "空","$b",!empty($b)?"空ではありません":"空","rn";
echo "rnrn"; " is_null","$a=$a",!is_null($a)?"no null":"null","rn"
echo "is_null","$b=$b",!is_null($ b )?"no null":"null","rn";
echo "is_null","$c=$c",!is_null($c)?"no null":"null","rn";
unset($b);
echo "is_null","$b",is_null($b)?"no null":"null","rn";
上記の簡単なテストを通じて、変数が存在する場合、isset、empty、is_null の検出、および値の取得を一般的に知ることができます。上記に例示されていない変数がさらにあります。実際、テストでは次のことがわかりました:
変数が空またはゼロ以外の値の場合、empty() は FALSE を返します。つまり、 ""、0、"0"、NULL、FALSE、array()、var $var、unknown; およびプロパティを持たないオブジェクトは空とみなされ、 var が空の場合は TRUE が返されます。
変数が存在する場合(NULLではない)はTRUEを返し、それ以外の場合はFALSE(未定義を含む)を返します。変数値は null に設定され、戻り値も false になります。変数の設定を解除すると、変数はキャンセルされます。 isset は NULL 値変数を特別に処理することに注意してください。
is_null
受信値 [値、変数、式] が null かどうかを確認します。1 つの変数が定義されており、その値が null の場合のみ、TRUE が返されます。その他の変数は FALSE を返します [未定義の変数が渡されるとエラーが発生します。 】.
詳細については、http://www.bKjia.c0m/phper/php/56681.htmをご確認ください