Зачем нужна функция isset() в php?
Я пытаюсь понять разницу между этим:
if (isset($_POST['Submit'])) {
//do something
}
и
if ($_POST['Submit']) {
//do something
}
Мне кажется, что если переменная $_POST ['Submit'] истинна, тогда она установлена. Зачем мне нужна функция isset() в этом случае?
Ответы
Ответ 1
Поскольку
$a = array("x" => "0");
if ($a["x"])
echo "This branch is not executed";
if (isset($a["x"]))
echo "But this will";
(См. также http://hk.php.net/manual/en/function.isset.php и http://hk.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting)
Ответ 2
isset вернет TRUE, если он существует и не является NULL, в противном случае FALSE.
Ответ 3
В основном вы хотите проверить, была ли вообще указана переменная $_POST [], независимо от значения. Если вы не используете isset(), некоторые представления, такие как submit=0
, не будут выполнены.
Ответ 4
Во втором примере PHP выдает уведомление (на E_NOTICE
или более строгий), если этот ключ не установлен для $_POST
.
Также см. этот вопрос о переполнении стека.
Ответ 5
Код
if($_POST['Submit'])
{
//some code
}
не будет работать в WAMP (работает на xampp)
на WAMP вам придется использовать
if (isset($_POST['Submit'])) {
//do something
}
попробуйте.:)
Ответ 6
если пользователь не вводит значение, поэтому $_post [] возвращает NULL, который мы говорим в описании isset: "
isset вернет TRUE, если он существует и не равен NULL, в противном случае это FALSE., но здесь isetet возвращает true
"