Php 会话\u destroy()不销毁$\u会话数据吗?

Php 会话\u destroy()不销毁$\u会话数据吗?,php,Php,我对PHP中的session\u destroy()函数感到非常困惑。我在php手册中读到,它会销毁注册到会话的所有数据。这到底是什么意思 当我尝试在SESSION\u destroy()之后回显存储在$\u SESSION中的结果时,它仍然会被打印出来 我只是认为存储在$\u会话中的结果是注册到会话的数据。 如果这是错误的,那么php手册正试图传达哪些数据。 需要指导 session_start(); class Student { public $name;

我对PHP中的
session\u destroy()
函数感到非常困惑。我在php手册中读到,它会销毁注册到会话的所有数据。这到底是什么意思

当我尝试在
SESSION\u destroy()
之后回显存储在
$\u SESSION
中的结果时,它仍然会被打印出来

我只是认为存储在
$\u会话中的结果是注册到会话的数据。
如果这是错误的,那么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);  

session\u destroy()
销毁与当前会话关联的所有数据在session_destry()启动session和取消设置所有值之前,它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie

unset($_SESSION["variable"]);
session\u destroy()
销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量

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

它将从
$\u会话中删除所有内容。
或
您还可以将
$\u SESSION
设置为空数组

$_SESSION = array();
希望能有所帮助。

您可以简单地执行以下操作:

$\u会话=[]

但这是不可取的。所以我用的是:

<?php 
session_unset();
session_destroy();

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

首先显示代码。您必须在销毁会话之前启动会话,您是否正在这样做。。我的意思是在会议前销毁;添加此行session_start();如果您在使用session_deatroy之后还没有准备好,则名称仍将打印出来。因此,如果该函数没有销毁$_会话数据,那么wht确实会销毁?@user2401175-除其他外,它会删除用于存储请求之间会话数据的持久存储(通常是临时文件)。我怀疑……wht会“销毁与当前会话相关的所有数据”是指?默认情况下,会话数据存储在服务器上的文件中。销毁会话会删除文件,这样下次加载页面时,您就不会有相同的会话。好的……因此,即使文件从服务器中删除,它是否仍保留在$\u会话数组变量中?在脚本启动时,PHP已经将文件加载到$\u会话变量中。在脚本执行期间销毁该文件不会对$\u会话产生任何影响。嘿…thanx这是可行的,但我想知道的是,如果会话$\u destroy()没有销毁$\u会话中的数据,那么到底是什么造成的?它会销毁存储在磁盘上用于会话的数据,不是内存中的数据。我注意到session\u destroy不会从当前请求中清除$\u session中的数据,但会为任何后续请求清除数据。
<?php 
session_unset();
session_destroy();