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

PHPのissetとemptyの違い

WBOY
WBOYオリジナル
2016-06-13 13:04:38741ブラウズ

php
のissetとemptyの違い

http://seawomen.iteye.com/blog/629786

?

PHP 言語における isset と empty の違い
empty は変数が「空」かどうかを判断し、isset は変数が設定されているかどうかを判断します。このいわゆる「名前のとおり」が、最初に私に寄り道をさせた理由です。
??? 1. 変数の値が 0 の場合、empty() も true (True) になるため、何らかの事故が発生します。 empty と isset は両方とも変数処理関数であり、どちらも変数が設定されているかどうかを判断するために使用されますが、特定の違いがあることがわかります。 ??? 2.empty は、変数が空かゼロかを検出します。変数値が 0 の場合、empty は変数が空であることと同等であるとみなします。これは、設定されていないことと同等です。
?
??? たとえば、$id 変数を検出するには、$id=0 の場合、empty と isset を使用して、変数 $id が設定されているかどうかを検出します。両方とも異なる値を返します。空の場合は、存在することを意味します。設定なし、isset は $ ID の値を取得できます:

PHP コード
PHPのissetとemptyの違い
  1. $id=0 ??
  2. ($id)?print?「空ですか? .":print?"それは?$id?.";? ??
  3. //結果: 空ですか? ??
  4. 印刷?"
    "
    ;
  5. !isset($id)?print?
  6. "それは?空ですか?.":print?"それは?$id?."; ??
  7. //結果: それは?0?.??
?
$id=0;
empty($id)?print "It's empty .":print "It's $id ."; 
//结果:It's empty .
print "<br>";
!isset($id)?print "It's empty .":print "It's $id .";
//结果:It's 0 .

??? これは、変数処理関数を使用する場合、変数の値が 0 である可能性がある場合、その時点でそれを isset に置き換える方が賢明であることを意味します。

?

PHP ページの URL 末尾パラメータが id=0 である場合 (例: test.php?id=0)、次のように比較してみます。

PHP コード
PHPのissetとemptyの違い
  1. if(($id))?$id=1;?//?id=0? の場合、id? も 1 になります。 ??
  2. if(!isset($id))?$id=1;??//? ?id=0?の場合、id?は1になりません??
?
if(empty($id)) $id=1; //若 id=0 ,id 也会为1
if(!isset($id)) $id=1;  // 若 id=0 ,id 不会为1
次のコードを個別に実行して、上記の推論を検出できます:

PHP コード
PHPのissetとemptyの違い
  1. if(($id))?$id=1; ?? print?$id;?
  2. //?Get?1 ??
  3. if(!isset($id))?$id=1; print?$id;?
  4. //Get?0??
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。