PHP を使用してページ プログラムを作成するとき、PHP ページの最後にある変数値が空かどうかを判断するために変数処理関数をよく使用します。最初は empty() 関数を使用することに慣れていましたが、あることに気づきました。いくつか問題があったので、 isset() 関数を使用すると、問題はなくなりました。
名前が示すように、empty() は変数が「空」かどうかを判断し、isset() は変数が設定されているかどうかを判断します。いわゆる「名前のとおり」ということで、最初に少し回り道をしました。変数の値が 0 の場合、empty() も真 (True) になるため、いくつかの事故が発生します。 empty() と isset() はどちらも変数処理関数であり、どちらも変数が設定されているかどうかを判断するために使用されますが、いくつかの違いがあることがわかりました。 empty は変数が空かゼロかどうかも検出します。変数値が 0 の場合、empty() は変数が空であることと同等、つまり設定されていないことと同等であるとみなします。 たとえば、$id 変数を検出するには、$id=0 の場合、empty() と isset() を使用して、変数 $id が設定されているかどうかを確認します。設定はありません。 isset () は $id の値を取得できます:
$id = 0;
empty ($id) ? print " It's empty . " : print " It's $id . " ;空です . print " < ;br> ;
! isset ($id) print " 空です . " : print " $id です . " ; // 結果: 0 です。変数ハンドラー関数を使用しています。変数の値が 0 である可能性がある場合、empty() を使用するときは注意してください。現時点ではそれを isset に置き換える方が賢明です。
PHP ページの URL 末尾パラメーターが id=0 である場合 (例: test.php?id=0)、次のように比較してみます。
if ( empty ($id)) $id = 1 ; = 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 ; // 0 を取得します
変数が 0 の場合、empty() は TRUE を返し、isset() は TRUE を返します。
変数が空の文字列の場合、empty() は TRUE を返し、isset() は TRUE を返します。変数が定義されていない場合、empty() は TRUE を返し、isset() は FLASE を返します
マニュアルでの empty() の説明は次のとおりです:
説明 bool empty(mixed var)
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
バイト ("