因为unset($_session)把_session 变量销毁 脚本结束时 无法将当前_session变量的内容写回文件中,所以,文件中存储的信息未发生变化;
而 unset($_session[‘a’]) 销毁数组中的一个值 脚本结束时候 session机制 将当前session变量信息 写回 文件中保存
可以为$_SESSION[]数组赋空值 $_SESSION = array() 或session_unset();
2.销毁$_COOKIE['phpsessionid'] cookie内的sessionid
Setcookie('PHPSESSIONID','',time()-1)
3.销毁服务器上的session存储介质(文件、数据库、内存等)
Session_destroy()
另:unset()销毁指定的变量
在函数中的行为会依赖于想要销毁的变量的类型而有所不同。
如果在函数中 unset()一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
function unset_test(){
global $a;
$a = 'b';
unset($a);
}
$a = 'a';
unset_test();
echo $a;//输出 b
如果在函数中 unset()一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。function unset_test1(&$pram){
$pram = 'cc';
unset($pram);
}
$c = 'c';
unset_test1($c);
echo $c;//输出cc 如果您想在函数中 unset()一个全局变量,可使用 $GLOBALS数组来实现:function unset_test2(){
$GLOBALS['d'] = 'dd';
unset($GLOBALS['d']);
}
$d = 'f';
unset_test2();
echo $d;//输出空 如果在函数中 unset()一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。function unset_test3(){
static $num=0;
$num++;
echo $num;
unset($num);
}
unset_test3();//输出1
unset_test3();//输出2
unset_test3();//输出3