True&False判定の誤り

よくコーディングでBoolean値の判定を行うが、潜在的なバグはここにある!
下記表を拾ってきました。

if($var)issetemptyis_null
$var=1TRUETRUEFALSEFALSE
$var="";FALSETRUETRUEFALSE
$var="0";FALSETRUETRUEFALSE
$var=0;FALSETRUETRUEFALSE
$var=NULL;FALSEFALSETRUETRUE
$varNULLFALSETRUETRUE
$var=array()FALSETRUETRUEFALSE

みなさんも空文字や0、nullやFALSEの違いを把握し、適切な式で値判定をしていますか?