session_unset()和session_destroy()的区别

引用自:http://hi.baidu.com/aquany/blog/item/3f65ce444aaa224a510ffecb.html

session_unset(),

session_unset()
释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id

session_destroy()
删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留

因此,释放用户的session所有资源,需要顺序执行如下代码:
程序代码
<?php
$_SESSION['user'] = 'lowell';
session_unset();
session_destroy();
?>

 

【注意】:

删除session方法:

1、unset ($_SESSION['xxx']) 删除单个session,unset($_SESSION['xxx']) 用来unregister一个已注册的session变量。其作用和session_unregister()相同。session_unregister()在PHP5中不再使用,可将之打入冷宫。

  unset($_SESSION) 此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_session变量。

  2、$_SESSION=array() 删除多个session

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

  返回值:布尔值。

  功能说明:这个函数结束当前的session,此函数没有参数,且返回值均为true

  session_unset() 如果使用了$_session,则该函数不再起作用。由于PHP5必定要使用$_session,所以此函数可以打入冷宫了。

可以得出删除session的步骤

  ①session_start()

  ②$_SESSION=array()/unset($_session['xxx'])

  ③session_destroy()

你可能感兴趣的:(职场,内存,休闲,session_destroy,session_unset)