As you can see in the following table empty($foo) is equivalent to $foo==null and is_null($foo) has the same function of $foo===null. The table also show some tricky values regarding null comparison. Personally, I never use empty() and is_null() functions. isset is_null ===null ==null empty null | F | T | T | T | T | unset | F | T | T | T | T | "" | T | F | F | T | T | [] | T | F | F | T | T | 0..