
なやむくん
isset、empty、is_nullはよく見るけどそれぞれの違いがイマイチわからない…。

なやむさん
それぞれの違いを比較表で確認したい…。
などの疑問や悩みを解決してまいります。
isset()
isset() は、変数が宣言されているか、nullかどうかをチェックします。
「宣言」の定義
変数が設定されている(存在している)こと
$var = 'Hello';
if (isset($var)) {
echo "変数は設定されています。"; // 出力
}戻り値は、変数が存在して null 以外の値であれば true、 そうでなければ false を返します。
empty()
empty() は、変数が空かどうかチェックします。
「空」の定義
""(空文字列)0(整数のゼロ)0.0(浮動小数点数のゼロ)"0"(文字列のゼロ)nullfalse[](空の配列)
$var = 0;
if (empty($var)) {
echo "変数は空です。"; // 出力
}戻り値は、変数の値が「空」であれば true、 そうでなければ false を返します。
is_null()
is_null() は、変数が null かどうかチェックします。
$var = null;
if (is_null($var)) {
echo "変数はNULLです。"; // 出力
}戻り値は、変数の値が「空」であれば true、 そうでなければ false を返します。
比較表
以下がisset、empty、is_nullの比較表になります。
| メソッド | 説明 | 戻り値の例 | 検証対象の状態 | 注意点 |
|---|---|---|---|---|
isset | 変数が存在し、nullでないか確認 | 存在: true未設定または null: false | 変数が定義されており、nullでない | 変数が未設定の場合も false になる |
empty | 変数が「空」であるか確認 | 空: true非空: false | "", 0, 0.0, "0", null, FALSE, [] | 多くの値が「空」とみなされるため、意図しない結果が出ることがある |
is_null | 変数が nullであるか確認 | null: true非null: false | 変数が明示的に nullである | 他の「空」の値(例: 0, false)は対象外 |
isset、empty、is_nullの比較表まとめ
変数の状態をチェックするための関数として isset()、empty()、is_null() の比較を行いました。
これらの関数は頻繁に使用するものの、それぞれ異なる目的と機能を持つため、慣れるまでは忘れがちになりますが、こちらの記事を参考にして思い出していただけますと幸いです。