为什么我需要php中的isset()函数?

时间:2010-03-17 06:36:22

标签: php post if-statement isset

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

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

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

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

6 个答案:

答案 0 :(得分: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.casting

答案 1 :(得分:4)

如果isset存在则返回TRUE,否则返回TRUE,否则返回FALSE。

答案 2 :(得分:3)

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

答案 3 :(得分:1)

在您的第二个示例中,如果没有为E_NOTICE设置该密钥,PHP将发出通知($_POST或更严格)。

另见this question on Stack Overflow

答案 4 :(得分:0)

代码


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

不适用于WAMP(适用于xampp)
在WAMP你必须使用


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

试试吧。 :)

答案 5 :(得分:0)

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

如果

isset将返回TRUE,如果它存在则返回TRUE,否则为FALSE。但是在这里isset返回true “