php session 释放,php中删除Session和销毁Session的方法

删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。session_start();

$_SESSION['name'] = 'jobs';

unset($_SESSION['name']);

echo $_SESSION['name']; //提示name不存在

如果要删除所有的session,可以使用session_destroy函数销毁当前session,session_destroy会删除所有数据,但是session_id仍然存在。session_start();

$_SESSION['name'] = 'jobs';

$_SESSION['time'] = time();

session_destroy();

值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。session_start();

$_SESSION['name'] = 'jobs';

$_SESSION['time'] = time();

unset($_SESSION);

session_destroy();

var_dump($_SESSION); //此时已为空

如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。

unset($_SESSION['xxx']) 删除单个session,unset($_SESSION['xxx']) 用来unregister一个已注册的session变量。

其作用和session_unregister()相同。

session_unregister()在PHP5中已经废弃。

php 官方删除session方式<?php

// 初始化session.

session_start();

/*** 删除所有的session变量..也可用unset($_SESSION[xxx])逐个删除。****/

$_SESSION = array();

/***删除sessin id.由于session默认是基于cookie的,所以使用setcookie删除包含session id的cookie.***/

if (isset($_COOKIE[session_name()])) {

setcookie(session_name(), '', time()-42000, '/');

}

// 最后彻底销毁session.

session_destroy();

?>

任务

使用unset删除name的session值。<?php

session_start();

$_SESSION['name'] = 'jobs';

//在这里删除name的session值

unset($_SESSION['name']);

if (isset($_SESSION['name'])) {

echo $_SESSION['name'];

return;

}

echo 'session被销毁';

彻底销毁Session代码如下所示:

//开启 Session

session_start();

// 删除所有 Session 变量

$_SESSION = array();

//判断 cookie 中是否保存 Session ID

if(isset($_COOKIE[session_name()])){

setcookie(session_name(),'',time()-3600, '/');

}

//彻底销毁 Session

session_destroy();

?>

注意:使用 $_SESSION = array() 清空 $_SESSION数组的同时,也将这个用户在服务器端对应的 Session 文件内容清空。而使用 session_destroy()函数时,则是将这个用户在服务器端对应的 Session 文件删除。

session_destroy()结束当前的会话,并清空会话中的所有资源。该函数不会unset(释放)和当前session相关的全局变量(globalvariables),也不会删除客户端的session cookie.PHP默认的session是基于cookie的,如果要删除cookie的话,必须借助setcookie()函数。

小结:

session_destroy是注销所有的session变量,并且结束session会话;

如果希望删除一些session数据,则可以使用unset()函数或session_destroy()函数。unset()函数的作用是释放指定的session变量,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值