ホームページ  >  記事  >  バックエンド開発  >  PHP の学習方法: PHP empty() と isset() の違い

PHP の学習方法: PHP empty() と isset() の違い

WBOY
WBOYオリジナル
2016-06-23 13:54:01609ブラウズ

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 を取得します


それらの関係について話すと、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)

var が a の場合空でない、またはゼロ以外の値の場合、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
バイト ("

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