ホームページ  >  記事  >  バックエンド開発  >  PHPにおけるempty,isset,is_nullの使い方と違いを詳しく解説

PHPにおけるempty,isset,is_nullの使い方と違いを詳しく解説

墨辰丷
墨辰丷オリジナル
2018-05-25 11:07:521885ブラウズ

最近、プロジェクトのソースコードを読んでいると、ソースコード内でempty、isset、is_null関数(言語機能)が無差別に使用されており、明らかに落とし穴があることがわかりました。これらを正しく理解していないと、その後の開発に落とし穴が生じる可能性があります。

1.empty の使用法

bool empty (混合 var)
var が空でない値またはゼロ以外の値の場合、empty() は FALSE を返します。つまり、""、0、"0"、NULL、FALSE、array()、var $var; および属性のないオブジェクトは、var が空の場合、TRUE が返されます

2.isset ()

isset -- 変数が設定されているかどうかを確認します

説明
bool isset (mixed var [,mixed var [, ...]])
var が存在する場合は TRUE を返し、存在しない場合は FALSE を返します。
unset() を使用して変数が解放された場合、それは isset() ではなくなります。 isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。また、NULL バイト (「0」) は PHP の NULL 定数と同等ではないことに注意してください。

注: 変数が存在しない場合、isset() と empty() はエラーを報告しません; is_null()、is_numeric() はエラーを報告します

3 つの要素 [0,'',null を区別する方法] ] は次の配列にありますか? (1) 違い 0:

$a = 0;
isset($a) && is_numeric($a) === true

(2) 違い ''

$a = '';
empty($a) && $a=== ''

(3) 違い null

$a = null;
is_null($a);

さらに、送信時に検出する必要がある場合があります。 $_REQUEST['status'] = 0 の場合は、empty($_REQUEST['status']) を使用して true を返しますが、変数が存在するかどうかを判断するには isset($_REQUEST['status']) を使用します。 not empty

3. is_null():

bool is_null (mixed $var) (php.net公式ドキュメントの関数定義)
パラメータが以下の3つの条件を満たす場合、is_null()はTRUEを返します。それ以外の場合は、FALSE
1 になります。値が割り当てられていません
3。これは、変数 unset() の後、定義されていないことと同じです。
いくつかの例を見てみましょう:

$myvar = NULL;  
var_dump(is_null($myvar)); // TRUE 
$myvar1;      
var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable 
$num = 520; 
unset($num); 
var_dump(is_null($num)); //TRUE Notice: Undefined variable 
var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable 
 
$myvar = 0; is_null($myvar);   // FALSE 
$myvar = FALSE; is_null($myvar); // FALSE 
$myvar = ''; is_null($myvar);  // FALSE


以上がこの記事の全内容です、皆さんの学習に役立つことを願っています。


関連する推奨事項:

PHP isset() と empty() の違い

php の isset と empty の違いの詳細な説明

phpパフォーマンスの最適化: isset () は strlen() よりも高速です

以上がPHPにおけるempty,isset,is_nullの使い方と違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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