🐘
PHPにおける isset と !empty の違い
isset
と !empty
はどちらも変数の値をチェックする関数ですが、それぞれ異なる動作をします。
isset
- 変数が宣言されていて、かつ
NULL
ではない場合にtrue
を返します。 - 変数の値が空文字 ("") や数値の 0 であっても
true
を返します。 - 未定義の変数に対して使用すると Fatal error を発生します。
!empty
- 以下のいずれかに該当する場合に
true
を返します。- 変数が
NULL
である。 - 変数が空文字 ("") である。
- 変数が数値の 0 である。
- 変数が
false
である。 - 変数が 未定義 である。
- 変数が
- 変数に値が設定されている場合は、たとえそれが空文字や数値の 0 であっても
false
を返します。
例
$var1 = "";
$var2 = 0;
$var3 = null;
$var4 = false;
var_dump(isset($var1)); // true
var_dump(isset($var2)); // true
var_dump(isset($var3)); // false
var_dump(isset($var4)); // true
var_dump(!empty($var1)); // false
var_dump(!empty($var2)); // false
var_dump(!empty($var3)); // false
var_dump(!empty($var4)); // false
上記のように、isset
と !empty
はそれぞれ異なる判定を行うため、状況に応じて使い分けることが重要です。
まとめ
-
isset
は変数が宣言されていて、かつNULL
ではないことを確認するのに適しています。 -
!empty
は変数が空かどうか、または 未定義 であるかどうかを確認するのに適しています。
その他
-
is_null
関数も変数がNULL
であるかどうかを確認するのに使用できます。 - 変数の型を厳密にチェックしたい場合は、
gettype()
関数を使用することができます。
Discussion