isset проверяет, есть ли такая переменная вообще, или нет. Удобно для проверки параметров в массивах типа $_GET, $_POST и т.д. В операторе сравнения с пустой строкой переменная уже точно должна существовать. Иначе сравнивать со строкой нечего.
для полноты картины надо упомянуть if (empty($var)). использовать с умом ))) условие сработает если - не существует переменной $var, или - она существует, но содержит NULL, 0, '0', '' или пустой массив аргументом empty() можно поставить только переменную, по загадочным причинам все прочие выражения недопустимы
Т.е. получается, чтобы не писать Код (Text): $name=@$_POST['name'] используем Код (Text): if(isset($_POST['name'])) и в этом случае можно обойтись без @ (подавления возможных ошибок) и писать Код (Text): $name=$_POST['name'] . Так?
Тут на форуме часто в примерах можно увидеть конструкцию Код (PHP): $name=(isset($_POST['name']))?$_POST['name']:''; как совмещающую проверку на наличие переменной $_POST['name'] и инициализацию $name. Если переменной $_POST['name'] нет, то присваивается пустая строка. Теперь переменная $name будет создана и инициализирована не зависимо от того, пришли ли данные, или нет. Это залог стабильной и быстрой работы скрипта. @ делают на всякий случай, т.к. на боевом сервере (хостинге) может быть ключен вывод ошибок и предупреждений. Но в правильном коде такое вряд ли встретишь. И правильный хостинг не выводит все ошибки тоже.