В чем разница между !isset
и empty
, isset
и !empty
??
Таблицы сравнения типов должны отвечать на все вопросы об этих операторах: http://php.net/manual/en/types.comparisons.php
Основной ответ заключался бы в том, что переменная может быть установлена (но не NULL) и все же быть пустой (может быть ассимилирована до 0). Рассмотрим, например, пустой массив.
Из ссылки, представленной @mjhennig, вы можете видеть, что 0 считается пустым. То есть False и пустая строка (очевидно) 🙂