isset()

isset() - определяет, установлена ли переменная. Если переменная существует и её значение не null, то функция вернёт true, иначе - false. Краткая запись isset(): if ($value) эквивалентно if (isset($value)).

empty()

empty() - проверяет переменную на существование и на пустоту. Если переменная существует, и в ней есть не пустое значение или true, то функция вернёт false, иначе true.

Наглядный пример:

Выражениеisset($x)empty($x)
unset($x)falsetrue
$x = ''truetrue
$x = 0truetrue
$x = '0'truetrue
$x = nullfalsetrue
$x = array()truetrue
$x = falsetruetrue
$x = 'false'truefalse
$x = truetruefalse
$x = 'true'truefalse
$x = 10truefalse
$x = 'string'truefalse

Исходя из таблицы можем привести разницу к простому примеру с кошельком. isset() проверяет есть ли у тебя кошелек, а empty() проверяет есть ли кошелек и лежит ли что-то в нем.