session_destroy()不会破坏$ _SESSION数据?

时间:2013-09-26 11:49:39

标签: php

我对PHP中的session_destroy()函数感到困惑。我在php手册中读到它会破坏注册到会话的所有数据。究竟是什么意思?

当我尝试回复$_SESSION之后存储在session_destroy()中的结果时,它仍会被打印出来!

我只是认为存储在$_SESSION中的结果是注册到会话的数据 如果这是错的,那么php手册正试图传达的数据是什么。 需要指导。

session_start();  
class Student  
{  
    public $name;  
    public $id;  
    function setName($param)  
    {  
        return $this->name=$param;  
    }   
}  
$student_1=new Student();  
$stu=$student_1->setName("Abhinav");  
$_SESSION["name1"]=$stu;  
session_destroy();  
print_r($_SESSION);  

5 个答案:

答案 0 :(得分:2)

你可以简单地做:

$_SESSION = [];

但建议不要这样做。所以我用的是:

<?php 
session_unset();
session_destroy();

答案 1 :(得分:0)

Read the manual

session_destroy()销毁与当前会话相关的所有数据。 它不会取消设置与会话相关的任何全局变量,或者取消设置会话cookie

答案 2 :(得分:0)

在session_destry()开始会话之前,取消设置所有值。

unset($_SESSION["variable"]);

答案 3 :(得分:0)

session_destroy()销毁与当前会话相关的所有数据。它不会取消设置与会话关联的任何全局变量 http://php.net/manual/en/function.session-destroy.php

要完全销毁会话,您可以使用unset()

unset($_SESSION);

它将删除$_SESSION中的所有内容。 要么 您还可以将$_SESSION设置为空数组

$_SESSION = array();

希望它会有所帮助。

答案 4 :(得分:0)

会话用于在网站页面之间传输数据。即使您使用session_destroy()销毁会话数据也不会从$ _SESSION中删除,但是当您访问另一个网站页面时,$ _SESSION数组中将没有数据。