我将 cookie 分配给变量:
$user_cookie = $_COOKIE["user"];
我如何检查是否$user_cookie
收到了一些价值?
我应该使用if (empty($user_cookie))
还是其他?
我将 cookie 分配给变量:
$user_cookie = $_COOKIE["user"];
我如何检查是否$user_cookie
收到了一些价值?
我应该使用if (empty($user_cookie))
还是其他?
这些是 empty 将返回 true 的东西:
直接取自php 手册
因此,要回答您的问题,是的,empty()
这将是一个完全可以接受的功能,在这种情况下,我更喜欢它isset()
像这样使用isset():
if (isset($_COOKIE["user"])){
$user_cookie = $_COOKIE["user"];
}
这会告诉您一个名为的键user
是否存在于$_COOKIE
. 值本身可以是""
、0
等NULL
。根据上下文,其中一些值(例如0
)可能是有效的。
PS:对于第二部分,我会使用===
运算符来检查false
, NULL
, 0
, ""
, 或 may be (string) $user_cookie !== ""
。
如果您的 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
}
我使用这种方法。
在 php http://php.net/manual/en/function.empty.php中尝试空函数
您也可以使用 isset http://www.php.net/manual/en/function.isset.php
isset()
,但是请记住,就像empty()
它不能用于表达式,只能用于变量。
isset($_COOKIE['user']); // ok
isset($user_cookie = $_COOKIE['user']); // not ok
$user_cookie = $_COOKIE['user'];
isset($user_cookie); // ok
(在处理 cookieisset()
时要走的路)
您可以使用:
if (!empty($_COOKIE["user"])) {
// code if not empty
}
但有时您想设置是否首先设置了值
if (!isset($_COOKIE["user"])) {
// code if the value is not set
}