自分用。
以下の変数を用いて実験。
※$hは未定義とする
$a = null; $b = 0; $c = '0'; $d = array(); $e = ''; $f = true; $g = false; // $h
まずはisset()。
var_dump(isset($a)); var_dump(isset($b)); var_dump(isset($c)); var_dump(isset($d)); var_dump(isset($e)); var_dump(isset($f)); var_dump(isset($g)); var_dump(isset($h)); ↓ bool(false) bool(true) bool(true) bool(true) bool(true) bool(true) bool(true) bool(false)
isset()は「null」、「未定義」の場合のみ「false」。
次にempty()。
var_dump(empty($a)); var_dump(empty($b)); var_dump(empty($c)); var_dump(empty($d)); var_dump(empty($e)); var_dump(empty($f)); var_dump(empty($g)); var_dump(empty($h)); ↓ bool(true) bool(true) bool(true) bool(true) bool(true) bool(false) bool(true) bool(true)
empty()は「true」の場合のみ「false」を返却という結果に。
ということで結果を表にまとめてみた。
値 | isset() | empty() |
---|---|---|
null | bool(false) | bool(true) |
0 | bool(true) | bool(true) |
‘0’ | bool(true) | bool(true) |
array() | bool(true) | bool(true) |
” | bool(true) | bool(true) |
true | bool(true) | bool(false) |
false | bool(true) | bool(true) |
未定義 | bool(false) | bool(true) |
変数未定義のempty()もエラー吐かずにtrue返してくれるのね。ためになっt(ry