[PHP] isset、empty、is_null関数の挙動まとめ
コラムphpで存在するか否かを調べる関数にisset, empty, is_nullがあります。
どれがどのように判定されるのか、迷うことが多いので一覧にしてみます。
isset | empty | is_null | |
---|---|---|---|
$var | FALSE | TRUE | TRUE |
$var = “” | TRUE | TRUE | FALSE |
$var = “hoge” | TRUE | FALSE | FALSE |
$var = 0 | TRUE | TRUE | FALSE |
$var = 1 | TRUE | FALSE | FALSE |
$var = 0.0 | TRUE | TRUE | FALSE |
$var = 0.1 | TRUE | FALSE | FALSE |
$var = “0” | TRUE | TRUE | FALSE |
$var = “1” | TRUE | FALSE | FALSE |
$var = “0.0” | TRUE | FALSE | FALSE |
$var = “0.1” | TRUE | FALSE | FALSE |
$var = TRUE | TRUE | FALSE | FALSE |
$var = FALSE | TRUE | TRUE | FALSE |
$var = NULL | FALSE | TRUE | TRUE |
$var = array() | TRUE | TRUE | FALSE |
$var = array(1,2) | TRUE | FALSE | FALSE |
で、論理演算子の否定「!」を付与すると当然ながら正反対の結果となります。
!isset | !empty | !is_null | |
---|---|---|---|
$var | TRUE | FALSE | FALSE |
$var = “” | FALSE | FALSE | TRUE |
$var = “hoge” | FALSE | TRUE | TRUE |
$var = 0 | FALSE | FALSE | TRUE |
$var = 1 | FALSE | TRUE | TRUE |
$var = 0.0 | FALSE | FALSE | TRUE |
$var = 0.1 | FALSE | TRUE | TRUE |
$var = “0” | FALSE | FALSE | TRUE |
$var = “1” | FALSE | TRUE | TRUE |
$var = “0.0” | FALSE | TRUE | TRUE |
$var = “0.1” | FALSE | TRUE | TRUE |
$var = TRUE | FALSE | TRUE | TRUE |
$var = FALSE | FALSE | FALSE | TRUE |
$var = NULL | TRUE | FALSE | FALSE |
$var = array() | FALSE | FALSE | TRUE |
$var = array(1,2) | FALSE | TRUE | TRUE |
なかなかややこしいですね!
株式会社Knocknote代表取締役。大学卒業後不動産営業に従事した後、ITの重要性を強く感じエンジニアへ転職。ソーシャルゲーム開発、スマホアプリやPepperアプリの企画及び開発、高校でのプログラミング講師などの業務に携わる。2017年1月に創業。現在はプログラミング教育事業、システム開発事業を展開。今後は海外向けの教育事業をさらに拡大させていく事が目標。著書:『作って学べるUnity超入門』(技術評論者)