当涉及到会话 cookie 过期时,此函数非常方便……因为会话 cookie 不会自动被销毁(参见 session_destroy 页面)。
例如,以下是我计划用来使会话 cookie 过期的内容
$CookieInfo = session_get_cookie_params();
if ( (empty($CookieInfo['domain'])) && (empty($CookieInfo['secure'])) ) {
setcookie(session_name(), '', time()-3600, $CookieInfo['path']);
} elseif (empty($CookieInfo['secure'])) {
setcookie(session_name(), '', time()-3600, $CookieInfo['path'], $CookieInfo['domain']);
} else {
setcookie(session_name(), '', time()-3600, $CookieInfo['path'], $CookieInfo['domain'], $CookieInfo['secure']);
}
session_destroy();
它不会检查会话 cookie 的路径部分是否已设置,因为 php.ini 中的默认值已经设置了此部分,与域名和安全不同。