【PHP】isset、empty、is_null徹底比較|それぞれのメソッドについても解説

PHP

【PHP】isset、empty、is_nullを徹底比較|それぞれのメソッドについても解説

なやむくん
isset、empty、is_nullはよく見るけどそれぞれの違いがイマイチわからない…。
なやむさん
それぞれの違いを比較表で確認したい…。

などの疑問や悩みを解決してまいります。

isset()

isset() は、変数が宣言されているか、nullかどうかをチェックします。

「宣言」の定義

変数が設定されている(存在している)こと

$var = 'Hello';
if (isset($var)) {
    echo "変数は設定されています。"; // 出力
}

戻り値は、変数が存在して null 以外の値であれば true、 そうでなければ false を返します。

empty()

empty() は、変数が空かどうかチェックします。

「空」の定義

  • ""(空文字列)
  • 0(整数のゼロ)
  • 0.0(浮動小数点数のゼロ)
  • "0"(文字列のゼロ)
  • null
  • false
  • [](空の配列)
$var = 0;
if (empty($var)) {
    echo "変数は空です。"; // 出力
}

戻り値は、変数の値が「空」であれば true、 そうでなければ false を返します。

is_null()

is_null() は、変数が null かどうかチェックします。

$var = null;
if (is_null($var)) {
    echo "変数はNULLです。"; // 出力
}

戻り値は、変数の値が「空」であれば true、 そうでなければ false を返します。

比較表

以下がissetemptyis_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)は対象外
issetemptyis_nullの比較表

まとめ

変数の状態をチェックするための関数として isset()empty()is_null() の比較を行いました。

これらの関数は頻繁に使用するものの、それぞれ異なる目的と機能を持つため、慣れるまでは忘れがちになりますが、こちらの記事を参考にして思い出していただけますと幸いです。

参考記事

PHP: isset - Manual

PHP: empty - Manual

PHP: is_null - Manual

  • この記事を書いた人
  • 最新記事

みつた

完全未経験&異業種から30歳の年でIT企業に転職。

Web系開発言語が好き。
どちらかというとバックエンドよりもフロントエンドが好き(現時点では…)

最近はサウナと観葉植物にハマっている。
野球が好きで一応投手。

-PHP