ホームページ  >  記事  >  バックエンド開発  >  empty() 関数と isset() 関数の違い

empty() 関数と isset() 関数の違い

WBOY
WBOYオリジナル
2016-07-25 09:11:461318ブラウズ

この記事では、PHP の empty 関数と isset 関数の違いを紹介します。興味のある方は参考にしてください。 PHP でページプログラムを書くとき、PHP ページの最後にある変数の値が空かどうかを判断するために変数処理関数を使用することがよくあります。最初は empty() 関数の使用に慣れていましたが、いくつかの問題が見つかりました。 isset() 関数に切り替えたところ、問題はなくなりました。

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

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

  1. $id=0;
  2. empty($id)?print "It's empty .":print "It's $id .";
  3. //結果: 空です .
  4. print "
    ";
  5. !isset($id)?print "It's empty .":print "It's $id .";
  6. //結果: It's 0 .
コードをコピー

これは、変数処理関数を使用すると、変数の値が 0 である可能性がある場合、empty() を使用するときは注意してください。現時点ではそれを isset に置き換える方が賢明です。

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

  1. if(empty($id)) $id=1; - id=0 の場合、id も 1 になります
  2. if(!isset($id)) $id=1; 、ID は 1 にはなりません
コードをコピーします

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

  1. if(empty($id)) $id=1;

  2. print $id; // 1

  3. ) $id=1;

  4. print $id; //Get 0

Copy code
両者の接続について話すと、共通点は empty() と isset() が両方とも変数であることです。処理関数は、変数が設定されているかどうかを判断するために使用されますが、変数の処理プロセスが非常に類似しているため、その関係が十分に理解されていません。 empty() と isset() という 2 つの関数自体を考慮するだけでも、別の角度から見るとさらに混乱するでしょう。 empty() と isset() の処理対象は未定義変数、0、空文字列に過ぎません。 変数が 0 の場合、empty() は TRUE を返し、isset() は TRUE を返します。

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

変数が定義されていない場合、empty() は TRUE を返し、isset() は FLASE を返します。

マニュアルのempty()の説明

説明 bool empty(mixed var ) empty() は、var が空でない値またはゼロ以外の値の場合に FALSE を返します。つまり、""、0、"0"、NULL、FALSE、array()、var $var;、およびプロパティを持たないオブジェクトは空とみなされ、var が空の場合は TRUE が返されます。 マニュアルのisset()の説明 isset() は変数が設定されているかどうかを確認します 説明 bool isset ( 混合変数 [, 混合変数 [, ...]] ) var が存在する場合は TRUE を返し、そうでない場合は FALSE を返します。 unset() を使用して変数が解放された場合、その変数は isset() ではなくなります。 isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。 NULL バイト (" 警告: isset() は変数でのみ使用できます。他の引数を渡すと解析エラーが発生するためです。定数が設定されているかどうかを確認したい場合は、define()関数を使用できます。 1. 変数が宣言されているかどうかを確認したい場合は、isset関数を使用できます。 2. 変数にデータが割り当てられており、空でないかどうかを確認したい場合は、empty 関数を使用できます。 3. 変数が存在し、空ではないかどうかを確認したい場合は、まず isset 関数を使用し、次に empty 関数を使用します

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