1

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

当我尝试回显我存储在$_SESSIONafter中的结果时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);  
4

5 回答 5

2

你可以简单地做:

$_SESSION = [];

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

<?php 
session_unset();
session_destroy();

于 2013-09-26T12:02:35.107 回答
0

阅读手册

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

于 2013-09-26T11:56:08.483 回答
0

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

unset($_SESSION["variable"]);
于 2013-09-26T11:56:45.473 回答
0

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

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

unset($_SESSION);

它会从$_SESSION. 或者您也可以设置$_SESSION为空数组

$_SESSION = array();

希望它会有所帮助。

于 2013-09-26T12:01:19.147 回答
0

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

于 2013-09-26T12:29:21.787 回答