Better than empty()

Value Bool empty() !isset() is_blank()
undefined undefined True True True
NULL False True True True
bool(false) False True False True
bool(true) True False False False
int(0) False True False False
float(0) False True False False
int(1) True False False False
float(1) True False False False
string(1) "0" False True False False
string(3) "0.0" True False False False
string(1) "1" True False False False
string(3) "1.0" True False False False
string(0) "" False True False True
string(1) " " True False False True
string(4) "test" True False False False
array(0) { } False True False True
array(1) { [0]=> int(1) } True False False False
object(stdClass)#1 (0) { } True False False False

Source code of empty.lib.php

<?php
/**
 * Checks if a scalar value is FALSE, without content or only full 
 * whitespaces. 
 * For non-scalar values will evaluate if value is empty().
 *
 * @param  mixed  $v  to test
 * @return  bool  if $v is blank
 */
function is_blank (&$v)
{
    return !isset($v) || (is_scalar($v) ? (trim($v) === '') : empty($v));
}
?>