13

我试图了解这之间的区别:

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

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

在我看来,如果 $_POST['Submit'] 变量为真,那么它就被设置了。在这种情况下,为什么我需要 isset() 函数?

4

6 回答 6

20

因为

$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.phphttp://hk.php.net/manual/en/language.types.boolean.php#language.types.boolean .铸造

于 2010-03-17T06:38:45.677 回答
4

如果 isset 存在且不为 NULL,则返回 TRUE,否则为 FALSE。

于 2010-03-17T06:38:49.580 回答
3

您基本上想检查 $_POST[] 变量是否已提交,无论其值如何。如果你不使用isset(),某些提交submit=0会失败。

于 2010-03-17T06:41:38.373 回答
1

在您的第二个示例中,E_NOTICE如果该键未设置为$_POST.

另请参阅Stack Overflow 上的这个问题

于 2010-03-17T06:50:32.083 回答
0

编码


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

不能在 WAMP 上工作(在 xampp 上工作)
你必须使用


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

尝试一下。:)

于 2010-03-17T09:51:53.623 回答
0

如果用户没有输入值,那么 $_post[] 返回 NULL,我们在 isset 的描述中说:“

如果 isset 存在并且不为 NULL,则返回 TRUE,否则为 FALSE。,但在这里 isset 返回 true"

于 2013-08-13T05:41:04.067 回答