PHP tiene diferentes funciones que se pueden utilizar para probar el valor de una variable. Tres funciones útiles para esto son isset(), empty() e is_null(). Todas estas funciones devuelven un valor booleano. Si estas funciones no se utilizan de la manera correcta, pueden causar resultados inesperados.
isset() y empty() a menudo se ven como funciones que son opuestas, sin embargo, esto no siempre es así. En este post explicaré las diferencias entre estas funciones.
isset()
From PHP manual – isset():
isset — Determine if a variable is set and is not NULL
En otras palabras, devuelve cierto sólo cuando la variable no es nulo. vacío()
From PHP Manual – empty():
empty — Determine whether a variable is empty
En otras palabras, devolverá verdadero si la variable es una cadena vacía, falsa, array(), NULL, “0 ?, 0, y una variable unset . is_null()
From PHP Manual – is_null():
is_null — Finds whether a variable is NULL
En otras palabras, devuelve cierto sólo cuando la variable es nula. is_null() es opuesto a isset(), excepto por una diferencia de que isset() se puede aplicar a variables desconocidas, pero is_null() solo a variables declaradas.
La tabla en la imagen es una referencia fácil de lo que devolverán estas funciones para diferentes valores. Los espacios en blanco significa que la función devuelve bool (falso). 
También he hecho una función personalizada para comprobar todo.
function checkEmpty($var, $term = ""){
if(isset($var) && trim($var) != "" && (!empty($var) || trim($var) == 0)){
return true;
}
else{
if($term != ""){
return array("status" => "error", "desc" => "$term can not be empty");
}
else{
return array("status" => "error", "desc" => "value can not be empty");
}
}
}
Usted puede encontrar esto útil: http://www.php.net /manual/en/types.comparisons.php – zzzzBov
muchas gracias! – laukok