ホームページ  >  記事  >  バックエンド開発  >  PHP isset() と empty() の違いの詳細な説明

PHP isset() と empty() の違いの詳細な説明

墨辰丷
墨辰丷オリジナル
2018-05-25 15:40:141408ブラウズ

この記事では主にPHPのisset()とempty()の違いを紹介します。非常に優れた参照値があります。以下のエディターで見てみましょう

PHP を使用してページプログラムを作成するとき、私はよく変数処理関数を使用して、PHP ページ末尾パラメーターの特定の変数値が空かどうかを判断します。最初は empty() 関数の使用に慣れていましたが、いくつか問題が見つかったので、isset() 関数に切り替えたところ、問題はなくなりました。

名前が示すように、empty() は変数が「空」かどうかを判断し、isset() は変数が設定されているかどうかを判断します。いわゆる「名前のとおり」ということで、最初に少し回り道をしました。変数の値が 0 の場合、empty() も真 (True) になるため、いくつかの事故が発生します。 empty() と isset() は両方とも変数処理関数ですが、どちらも変数が設定されているかどうかを判断するために使用されますが、特定の違いがあることがわかります: empty は変数が空かゼロかどうかも検出します。変数値が 0 の場合、empty() は変数が空であることと同等、つまり設定されていないことと同等であるとみなします。

たとえば、$id 変数を検出するには、$id=0 の場合、empty() と isset() を使用して、変数 $id が設定されているかどうかを検出します。両方とも異なる値、empty() を返します。設定されていないとみなされるため、isset() は $id の値を取得できます:

 $id=0;
 empty($id)?print "It's empty .":print "It's $id ."; 
  //结果:It's empty .
 print "
";
 !isset($id)?print "It's empty .":print "It's $id .";
  //结果:It's 0 .

これは、変数処理関数を使用するとき、変数の値が 0 である可能性がある場合、empty( を使用するときは注意が必要であることを意味します) ) そしてこの時点でそれを isset に置き換えるのは、もう少し賢明です。

PHP ページの URL 末尾パラメーターが id=0 である場合 (例: test.php?id=0)、比較してみてください:

if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1

上記を検出するには、次のコードを個別に実行できます。推論:

 if(empty($id)) $id=1;
 print $id; // 得到 1
 if(!isset($id)) $id=1;
 print $id; //得到 0

それらの関係について話すと、empty() と isset() は両方とも変数処理関数であるため、その機能はまさに変数が設定されているかどうかを判断することです。変数の処理過程における両者の類似性が非常に高いため、それらの関係の理解が不十分になります。 empty() と isset() という 2 つの関数自体を考慮するだけでも、別の角度から見るとさらに混乱するでしょう。 empty() と isset() の処理対象は未定義変数、0、空文字列に過ぎません。

変数が 0 の場合、empty() は TRUE を返し、isset() は TRUE を返します。

変数が空の文字列の場合、empty() は TRUE を返し、isset() は戻ります。 TRUE;

変数が未定義の場合、empty() は TRUE を返し、isset() は FLASE を返します

マニュアルでの empty() の説明は次のとおりです。 ( 混合 var )

var が空またはゼロ以外の値の場合、 empty() は FALSE を返します。つまり、""、0、"0"、NULL、FALSE、array()、var $var;、およびプロパティを持たないオブジェクトは空とみなされ、var が空の場合は TRUE が返されます。

マニュアルでの isset() の説明は次のとおりです:

isset() は変数が設定されているかどうかを検出します

説明 bool isset (mixed var [,mixed var [, ...]] )

var が存在する場合は TRUE を返し、それ以外の場合は FALSE を返します。

unset() を使用して変数が解放された場合、それは isset() ではなくなります。 isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。 NULL バイト ("

以上がPHP isset() と empty() の違いの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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