检查 $_COOKIE 值是否为空

发布于 2024-11-16 17:14:06 字数 191 浏览 2 评论 0原文

我将 cookie 分配给变量:

$user_cookie = $_COOKIE["user"];

如何检查 $user_cookie 是否收到了某些值?

我应该使用 if (empty($user_cookie)) 还是其他东西?

I assign a cookie to a variable:

$user_cookie = $_COOKIE["user"];

How can I check if the $user_cookie received some value or not?

Should I use if (empty($user_cookie)) or something else?

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

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

发布评论

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

评论(6

鲜血染红嫁衣 2024-11-23 17:14:06

像这样使用 isset()

if (isset($_COOKIE["user"])){
$user_cookie = $_COOKIE["user"];
}

这会告诉你是否有一个名为 < code>user 存在于 $_COOKIE 中。该值本身可以是 ""0NULL 等。根据上下文,其中一些值(例如 0< /code>) 可能有效。

PS:对于第二部分,我将使用 === 运算符来检查 falseNULL0 >、"",或者可能是 (string) $user_cookie !== ""

Use isset() like so:

if (isset($_COOKIE["user"])){
$user_cookie = $_COOKIE["user"];
}

This tells you whether a key named user is present in $_COOKIE. The value itself could be "", 0, NULL etc. Depending on the context, some of these values (e.g. 0) could be valid.

PS: For the second part, I'd use === operator to check for false, NULL, 0, "", or may be (string) $user_cookie !== "".

‘画卷フ 2024-11-23 17:14:06

这些是empty将返回true的内容:

  • "" (空字符串)
  • 0 (0作为整数)
  • 0.0 (0作为浮点数)
  • "0" (0作为字符串)
  • NULL
  • FALSE
  • array() (空数组)
  • var $var ; (声明的变量不在类中)

直接取自 php 手册

所以回答你的问题,是的,empty()将是一个完全可以接受的函数,在这种情况下,我更喜欢它而不是isset()

These are the things empty will return true for:

  • "" (empty string)
  • 0 (0 as an integer)
  • 0.0 (0 as float)
  • "0" (0 as string)
  • NULL
  • FALSE
  • array() (an empty array)
  • var $var; (a declared variable not in a class)

Taken straight from the php manual

So to answer your question, yes, empty() will be a perfectly acceptable function, and in this instance I'd prefer it over isset()

葮薆情 2024-11-23 17:14:06

isset(),但是请记住,例如empty() 它不能用于表达式,只能用于变量。

isset($_COOKIE['user']); // ok

isset($user_cookie = $_COOKIE['user']); // not ok

$user_cookie = $_COOKIE['user'];
isset($user_cookie); // ok

isset() 处理 cookie 时的方法

isset(), however keep in mind, like empty() it cannot be used on expressions, only variables.

isset($_COOKIE['user']); // ok

isset($user_cookie = $_COOKIE['user']); // not ok

$user_cookie = $_COOKIE['user'];
isset($user_cookie); // ok

(isset() is the way to go, when dealing with cookies)

没有心的人 2024-11-23 17:14:06

您可以使用:

if (!empty($_COOKIE["user"])) {
   // code if not empty
}

但有时您想设置是否首先设置了该值

if (!isset($_COOKIE["user"])) {
   // code if the value is not set
}

You can use:

if (!empty($_COOKIE["user"])) {
   // code if not empty
}

but sometimes you want to set if the value is set in the first place

if (!isset($_COOKIE["user"])) {
   // code if the value is not set
}
幽梦紫曦~ 2024-11-23 17:14:06

如果您的 cookie 变量是数组

if (!isset($_COOKIE['user']) || empty(unserialize($_COOKIE['user']))) {
    // cookie variable is not set or empty
}

如果您的 cookie 变量不是数组

if (!isset($_COOKIE['user']) || empty($_COOKIE['user'])) {
    // cookie variable is not set or empty
}

我使用这种方法。

If your cookie variable is an array:

if (!isset($_COOKIE['user']) || empty(unserialize($_COOKIE['user']))) {
    // cookie variable is not set or empty
}

If your cookie variable is not an array:

if (!isset($_COOKIE['user']) || empty($_COOKIE['user'])) {
    // cookie variable is not set or empty
}

I use this approach.

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