empty
is more or less shorthand for!isset($foo) || !$foo
, and !empty
is analogous to isset($foo) && $foo
. empty
is the same as !$foo
, but doesn’t throw warnings if the variable doesn’t exist. That’s the main point of this function: do a boolean comparison without worrying about the variable being set.