425 文字
2 分
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)); // truevar_dump(isset($var2)); // truevar_dump(isset($var3)); // falsevar_dump(isset($var4)); // true
var_dump(!empty($var1)); // falsevar_dump(!empty($var2)); // falsevar_dump(!empty($var3)); // falsevar_dump(!empty($var4)); // false上記のように、isset と !empty はそれぞれ異なる判定を行うため、状況に応じて使い分けることが重要です。
まとめ
issetは変数が宣言されていて、かつNULLではないことを確認するのに適しています。!emptyは変数が空かどうか、または 未定義 であるかどうかを確認するのに適しています。
その他
is_null関数も変数がNULLであるかどうかを確認するのに使用できます。- 変数の型を厳密にチェックしたい場合は、
gettype()関数を使用することができます。