//PHPのisset()、empty()、is_null()の違い
PHPのisset()、empty()、is_null()の違い
クレジット: https://techtalk.virendrachandak.com/php-isset-vs-empty-vs-is_null/
PHPには変数の値をテストするためのさまざまな関数があります。これらのうち、isset()、empty()、およびis_null()は非常に役立つ関数です。これらの関数はすべてブール値を返します。これらの関数が正しく使用されないと、予期しない結果が生じることがあります。
isset()とempty()は、しばしば反対の関数と見なされますが、これは常に正しいわけではありません。この記事では、これらの関数の違いについて説明します。
empty()
PHPマニュアル – empty()より:
PHPマニュアル – empty()より:
empty — 変数が空かどうかを確認します
言い換えれば、変数が空の文字列、false、array()、NULL、”0″、0、または未設定の変数であれば、trueを返します。
is_null()
PHPマニュアル – is_null()より:
PHPマニュアル – is_null()より:
is_null — 変数がNULLかどうかを確認します
言い換えれば、変数がNULLの場合にのみtrueを返します。is_null()はisset()の逆ですが、1つの違いは、isset()は未宣言の変数にも適用できますが、is_null()は宣言された変数にのみ適用できることです。
下のテーブルは、これらの関数が異なる値に対して返す結果を簡単に参照できるものです。空白のセルは、関数がbool(false)を返すことを意味します。
変数の値 ($var) | isset($var) | empty($var) | is_null($var) |
---|---|---|---|
“” (空の文字列) | bool(true) | bool(true) | |
” ” (スペース) | bool(true) | ||
FALSE | bool(true) | bool(true) | |
TRUE | bool(true) | ||
array() (空の配列) | bool(true) | bool(true) | |
NULL | bool(true) | bool(true) | |
“0″ (文字列としての0) | bool(true) | bool(true) | |
0 (整数としての0) | bool(true) | bool(true) | |
0.0 (浮動小数点としての0) | bool(true) | bool(true) | |
var $var; (値が設定されていない変数) | bool(true) | bool(true) | |
NULL バイト (“\ 0″) | bool(true) |