Это зависит от контекста.
isset()
вернет ТОЛЬКО значение true, если значение переменной не равно NULL
(и, следовательно, переменная, по крайней мере, определена).
empty()
вернет true, если значение переменной считается «пустым», обычно это означает 0
, "0"
, NULL
, FALSE
, array()
(пустое массив) и ""
(пустая строка), все остальное не является пустым.
Некоторые примеры
FALSE == isset($foo);
TRUE == empty($foo);
$foo = NULL;
FALSE == isset($foo);
TRUE == empty($foo);
$foo = 0;
TRUE == isset($foo);
TRUE == empty($foo);
$foo = 1;
TRUE == isset($foo);
FALSE == empty($foo);