php session_unset()与session_destroy()区别及实例讲解

时间:2016-08-01
php session_unset()函数用于释放session中注册的所有变量,而session_destroy()函数用于删除当前用户对应的session文件以及释放session,本文章向大家介绍php session_unset()与session_destroy()区别及实例讲解,需要的朋友可以参考一下。

session_unset()函数

session_unset()函数只是用于释放在session中注册的所有变量,不会删除服务器上session的文件也不会删除客户端cookie里面保存的session id。

删除session中注册的所有变量:

session_unset();  

其实,释放在session中注册的所有变量,还有例外一种方法:

$_SESSION=array();   //将某个用户在session中注册的变量全部删除。

上面已经说了session_unset()函数删除所有session变量。那如果想要把某个用户在session中注册的某一个变量删除掉,该如何操作呢?我们可以unset()函数。如下所示:

unset($_SESSION['username']);  //删除在session中注册的用户名变量
unset($_SESSION['password']);  //删除在session中注册的用户密码变量
/* http://www.manongjc.com/article/1291.html */

有的朋友可能认为,既然unset($_SESSION['username'])可以删除session中注册的用户名变量,那么unset($_SESSION)也可以删除全部的session变量,其实这样做是错误的,因为使用unset($_SESSION)将删除整个$_SESSION数组,这样将不能再通过$_SESSION超全局数组注册变量了。

session_destroy()函数

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

销毁和当前session有关的所有的资料,可以调用session_destory函数结束当前的会话,并清除当前会话的所有资源。该函数的语法格式如下所示:

bool session_destory(void) //销毁当前session有关的所有资料。

相对于session_start()函数,该函数用来关闭session的运作,如果成功则返回true,销毁session资料失败则返回false。但该函数并不会释放当前session相关的变量。也不会删除保存在客户端cookie中的session id。

session_unset()与session_destroy()区别

session_destroy是注销所有的session变量,并且结束session会话;
session_unset()并不注销session变量,只是把所有的session变量的值清空.

那么一般在做退出的操作时可以这样做:

<?php
session_start();
/*其他操作代码*/
session_unset();
session_destroy();
?>