删除cookie时为什么取消设置cookie变量

时间:2014-02-11 17:02:20

标签: php cookies

我正在探索Kohana框架的源代码,在浏览器上删除cookie时它有以下逻辑:

public static function delete($name)
    {
        // Remove the cookie
        unset($_COOKIE[$name]);

        // Nullify the cookie and make it expire
        return setcookie($name, NULL, -86400, Cookie::$path, Cookie::$domain, Cookie::$secure, Cookie::$httponly);
    }

我了解功能setcookie会将Cookie的名称设置为deleted(如浏览器Cookie视图中所示)并使其过期,以便浏览器不会将其发送到下一个时间。那么为什么unset的第一部分存在呢?

2 个答案:

答案 0 :(得分:1)

setcookie将Cookie添加到HTTP 响应标头中。 $ _COOKIE提供来自请求标头的Cookie。因此setcookie不会影响$ _COOKIE数组的cookie(在当前页面加载时)。因此我们必须在$ _COOKIE中取消设置cookie,以确保如果我们想要进一步获取它(在当前页面加载时),这个cookie将不会出现在$ _COOKIE数组中。

答案 1 :(得分:0)

两者都相同并删除co​​okie。如果我们删除未设置,肯定会工作并删除co​​okie。