Почему мне нужен isset () функция в php?

Я пытаюсь понять различие между этим:

if (isset($_POST['Submit'])) { 
  //do something
}

и

if ($_POST['Submit']) { 
  //do something
}

Мне кажется, что, если $ _POST ['Отправляют'], переменная верна, то это установлено. Почему мне был бы нужен isset () функция в этом случае?

12
задан zeckdude 17 March 2010 в 06:36
поделиться

5 ответов

Потому что

$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 )

20
ответ дан 2 December 2019 в 05:27
поделиться

Во втором примере PHP выдаст уведомление (на E_NOTICE или более строго), если этот ключ не установлен для $ _ POST .

Также см. этот вопрос о переполнении стека .

1
ответ дан 2 December 2019 в 05:27
поделиться

По сути, вы хотите проверить, была ли вообще отправлена ​​переменная $ _POST [], независимо от значения. Если вы не используете isset (), некоторые отправления, такие как submit = 0 , завершатся ошибкой.

3
ответ дан 2 December 2019 в 05:27
поделиться

isset вернет TRUE, если он существует, и не NULL, в противном случае - FALSE.

4
ответ дан 2 December 2019 в 05:27
поделиться

Код


if($_POST['Submit'])
{
//some code
}

не будет работать в WAMP (работает на xampp)
на WAMP вам придется использовать


if (isset($_POST['Submit'])) { 
  //do something
}

попробуйте. :)

0
ответ дан 2 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: