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

发布于 2024-08-26 05:08:25 字数 247 浏览 11 评论 0原文

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

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

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

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

I am trying to understand the difference between this:

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

and

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

It seems to me that if the $_POST['Submit'] variable is true, then it is set. Why would I need the isset() function in this case?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

燕归巢 2024-09-02 05:08:25

因为

$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

Because

$a = array("x" => "0");

if ($a["x"])
  echo "This branch is not executed";

if (isset($a["x"]))
  echo "But this will";

(See also http://hk.php.net/manual/en/function.isset.php and http://hk.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting)

浊酒尽余欢 2024-09-02 05:08:25

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

isset will return TRUE if it exists and is not NULL otherwise it is FALSE.

ㄖ落Θ余辉 2024-09-02 05:08:25

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

You basically want to check if the $_POST[] variable has been submitted at all, regardless of value. If you do not use isset(), certain submissions like submit=0 will fail.

染墨丶若流云 2024-09-02 05:08:25

在第二个示例中,如果未为 $_POST 设置该键,PHP 将发出通知(在 E_NOTICE 或更严格)。

另请参阅Stack Overflow 上的此问题

In your 2nd example, PHP will issue a notice (on E_NOTICE or stricter) if that key is not set for $_POST.

Also see this question on Stack Overflow.

北座城市 2024-09-02 05:08:25

该代码


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

无法在 WAMP 中运行(可以在 xampp 中运行)
在 WAMP 上你将不得不使用


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

尝试一下。 :)

The code


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

will not work in WAMP (works on xampp)
on WAMP you will have to use


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

try it. :)

泪痕残 2024-09-02 05:08:25

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

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

if user do not enter a value so $_post[] return NULL that we say in the description of isset:"

isset will return TRUE if it exists and is not NULL otherwise it is FALSE.,but in here isset return the true
"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文