cookie“)和setcookie()函数
我正在重构一些代码,并发现了一些我从未见过的东西。 该功能用于用户在用户登录时设置cookie:
function setUserCookie($name, $value) {
$date = date("D, d M Y H:i:s",strtotime('1 January 2015')) . 'GMT';
header("Set-Cookie: {$name}={$value}; EXPIRES{$date};");
}
现在我已经分配了重构代码我打算使用setcookie
函数,它根据php.net基本上做同样的事情。
我的问题是:两者之间有什么区别,我应该使用哪一个?
注意:这段代码是很久以前写的,所以我假设当时setcookie
不存在?
没有很好的理由不使用setcookie。 上面的代码没有正确编码名称和值,所以这至少对重构有一个主要的好处。
这两个函数的区别在于, header()
是设置HTTP头的一般函数,而setcookie()
是专门设置Set-Cookie
头的。
因此, header()
需要一个包含完整头的字符串,而setcookie()
需要几个cookie特定的参数,然后从它们创建Set-Cookie
头。