我将cookie分配给变量:
$user_cookie = $_COOKIE["user"];
如何检查$user_cookie
是否收到了某些值?
我应该使用if (empty($user_cookie))
还是别的什么?
答案 0 :(得分:5)
这些是空的东西将返回true:
直接从php manual
开始所以要回答你的问题,是的,empty()
将是一个完全可以接受的功能,在这种情况下,我更喜欢isset()
答案 1 :(得分:5)
像这样使用isset():
if (isset($_COOKIE["user"])){
$user_cookie = $_COOKIE["user"];
}
这会告诉您user
中是否存在名为$_COOKIE
的密钥。值本身可以是""
,0
,NULL
等。根据上下文,其中一些值(例如0
)可能有效。
PS:对于第二部分,我使用===
运算符来检查false
,NULL
,0
,""
,或者可能是(string) $user_cookie !== ""
。
答案 2 :(得分:2)
如果您的Cookie变量是数组:
$ fkill someapp :8080 node :3333 :9000
如果您的Cookie变量不是不是个数组:
if (!isset($_COOKIE['user']) || empty(unserialize($_COOKIE['user']))) {
// cookie variable is not set or empty
}
我使用这种方法。
答案 3 :(得分:1)
在php中尝试空函数 http://php.net/manual/en/function.empty.php
您也可以使用isset http://www.php.net/manual/en/function.isset.php
答案 4 :(得分:1)
isset()
,但请记住,如empty()
它不能用于表达式,只能用于变量。
isset($_COOKIE['user']); // ok
isset($user_cookie = $_COOKIE['user']); // not ok
$user_cookie = $_COOKIE['user'];
isset($user_cookie); // ok
( isset()
是处理Cookie的方式)
答案 5 :(得分:0)
您可以使用:
if (!empty($_COOKIE["user"])) {
// code if not empty
}
但有时您想设置是否在第一个位置设置了值
if (!isset($_COOKIE["user"])) {
// code if the value is not set
}