[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 |
なかなかややこしいですね!