PHP を使用してページ プログラムを作成する場合、PHP ページの最後の変数値が空かどうかを判断するために変数処理関数をよく使用します。最初は empty() 関数を使用することに慣れていましたが、いくつかの問題があるため、代わりに isset() 関数を使用すると、問題は発生しなくなります。
名前が示すように、empty() は変数が「空」かどうかを判断し、isset() は変数が設定されているかどうかを判断します。
これは、いわゆる「名前が示すとおり」で、最初に少し回り道をしました。変数の値が 0 に等しい場合、empty() も true (True) になります。 、したがって、いくつかのことが起こります。 (推奨学習: PHP ビデオ チュートリアル )
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 "<br>"; !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
以上がphp isset() と empty() の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。