isset() | 変数がセット かつ NULLでない | null文字("\0")はPHPの定数 NULLと等価ではない |
empty() | 空かどうか | 変数が存在しない場合でも警告を発しません。 |
is_null() | NULLかどうか | |
is_string() | 文字列かどうか | |
is_int() | 整数型かどうか | is_integer()、is_long()も同じ |
is_float() | floatかどうか | is_double()、is_real()も同じ |
is_numeric() | 数字または数値形式の文字列 | |
is_bool() | boolean かどうか | |
is_array() | 配列かどうか | |
is_object() | オブジェクトかどうか | |
is_resource() | リソースかどうか | |
is_scalar() | スカラかどうか | スカラ変数には integer、float、string あるいは boolean が含まれます。 array、object および resource はスカラではありません。 |
参考:PHP: 変数操作 - Manual
関数ではなく 言語構造
・isset()・empty ()
関数よりもオーバーヘッドが少ない(処理速度が速い)
empty()
変数が存在しなくても警告は発生しません。 つまり、empty() は本質的に !isset($var) || $var == false と同じことを簡潔に記述しているだけです。
次のような値は空であるとみなされます。
・"" (空文字列)
・0 (整数 の 0)
・0.0 (浮動小数点数の 0)
・"0" (文字列 の 0)
・NULL
・FALSE
・array() (空の配列)
・$var; (変数が宣言されているが、値が設定されていない)
PHP: empty - Manual
文字列が格納される可能性のある変数に関してemptyを使用するのは控える。"0"の扱いに問題があるためである。
isset, empty, is_null の動作まとめ - Qiita
文字列の”0”もempty(空)扱いされるので要注意
スポンサーリンク