True&False判定の誤り
よくコーディングでBoolean値の判定を行うが、潜在的なバグはここにある!
下記表を拾ってきました。
値 | if($var) | isset | empty | is_null |
---|---|---|---|---|
$var=1 | TRUE | TRUE | FALSE | FALSE |
$var=""; | FALSE | TRUE | TRUE | FALSE |
$var="0"; | FALSE | TRUE | TRUE | FALSE |
$var=0; | FALSE | TRUE | TRUE | FALSE |
$var=NULL; | FALSE | FALSE | TRUE | TRUE |
$var | NULL | FALSE | TRUE | TRUE |
$var=array() | FALSE | TRUE | TRUE | FALSE |
みなさんも空文字や0、nullやFALSEの違いを把握し、適切な式で値判定をしていますか?