PHP проверка форм

1,00
р.
Стандартное вступление: Только начинаю изучать php, не ругайтесь за глупый вопрос и т.д. Код из книги Робина Никсона.
<?php if (isset($_POST['name'])) $name = $_POST['name'] else $name = '(Не введено)' echo <<<_END <html> Test Вас зовут $name
Как вас зовут?
_END ?>
Вопрос: Во второй строке с помощью isset() проверяем установлена переменная или нет. В третьей у нас условие: если не установлена, то выводим "(Не введено)". Вот что не пойму: открываю страницу - выводит:
Вас зовут (Не введено) Как вас зовут? (и форма для отправки)
Ничего не ввожу, нажимаю "отправить" - выводит:
Вас зовут Как вас зовут? (и НЕ выводит "не введено") (и форма для отправки)
То есть, я ничего не ввожу, но функция, считает, что переменная была установлена значением отличным от NULL. Почему? Если она пропускает пустое значение, то зачем ее использовать? Почему не использовать empty? Но во всех программах вижу именно такую проверку. Чего я не понимаю?


Ответ
Да, после сабмита $_POST['name'] получил право на существование (isset). Ведь пустая строка - тоже значение. А если есть значение, то есть и переменная. Но вы верно подметили почему бы не взять empty? А разница в том, что empty проверяет на пустоту значения существующей переменной. Поэтому тут оптимальным будет двойное условие:
if (isset($_POST['name']) && !empty($_POST['name']))