- empty() в случае если переменная не установлена (не существует) посчитает её пустой - предупреждения выведены не будут - то есть несуществующие переменные можно смело передавать в empty()
- isset() выполняет проверку только на то установлена/не установлена переменная, но не на пустоту (передавать несуществующие переменные тем более можно)
При этом :
Следующие значения воспринимаются как пустые: