Зачем мне нужна функция isset () в php? - PullRequest
12 голосов
/ 17 марта 2010

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

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

и

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

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

Ответы [ 6 ]

20 голосов
/ 17 марта 2010

Потому что

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

4 голосов
/ 17 марта 2010

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

3 голосов
/ 17 марта 2010

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

1 голос
/ 17 марта 2010

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

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

0 голосов
/ 13 августа 2013

, если пользователь не вводит значение, поэтому $ _post [] возвращает NULL, что мы говорим в описании isset: "

isset вернет TRUE, если он существует, и не равен NULL, в противном случае это FALSE., Но здесь isset возвращает истину «

0 голосов
/ 17 марта 2010

Код


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

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


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

попробовать.:)

...