【PHP】変数のチェック関数(is_関数)

  • 投稿 : 2017-02-20
特に、isset()、empty()、is_null()あたりがたまにしか使わないと分からなくなるのでまとめてみました。

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(空)扱いされるので要注意
スポンサーリンク
タグ#PHP