ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルの empty()、is_null()、および isset() 関数の違い

PHP_PHP チュートリアルの empty()、is_null()、および isset() 関数の違い

WBOY
リリース: 2016-07-13 10:42:10
オリジナル
790 人が閲覧しました

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をご確認ください

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/667909.html技術記事 empty()、is_null()、isset() 真理値表 (違い) まず、これら 3 つの関数の機能説明を見てみましょう。 www.111cn.net isset は、変数がすでに存在するかどうかを判断し、変数が存在する場合は TRUE を返します。そうでなければ..
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート