/**
*
* @param mixed $v
* @return boolean
*
**/
function v($v){
if(is_bool($v)){
return $v;
}elseif(is_numeric($v)){ // all numeric (0 and '0') are true.
return true;
}elseif(is_string($v)){
return !empty($v);
}elseif(is_array($v)){
$v = array_filter($v,"v");
return !empty($v);
}elseif(is_object($v)){
return v(get_object_vars($v));
}else{
return !empty($v);
}
}
実際にHTMLに出力するときは 0を値とみなすことのほうが多いと思いますので
0もTRUE扱いにしています。