Php 为什么我必须取消所有会话变量?

Php 为什么我必须取消所有会话变量?,php,session,global-variables,Php,Session,Global Variables,为什么我必须将会话变量置零?是否session\u destroy还不够 <?php session_start(); $_SESSION = array();// <--Is necessary? if (isset($_COOKIE[session_name()]])){ setcookie(session_name(),'',time()-42000,'/'); } session_destroy();

为什么我必须将会话变量置零?是否
session\u destroy
还不够

<?php
     session_start();
     $_SESSION = array();// <--Is necessary?
     if (isset($_COOKIE[session_name()]])){
        setcookie(session_name(),'',time()-42000,'/');
     }
     session_destroy();
     header('Location:Login.php');
?> 

将值置零是一种预防措施,以防对象未被
会话_destroy()破坏

只是预防措施和良好做法,这不是必需的


为什么要启动会话并立即销毁它?

您应该同时使用
session\u unset()
session\u destroy()

请注意,
session\u destroy()
仅在页面重新加载或重定向到其他页面时清空变量。只要它是同一个页面,在调用
会话\u destroy()
后变量仍然可用,因此最好在
会话\u destroy()之前使用
会话\u unset()

这是注销页面。我使用
会话启动
来检测会话cookie。我认为使用它是必要的。@giannosfor:在这种情况下,根本没有必要,因为您是在
会话启动()
无论如何。在什么情况下,
会话\u destroy
可能不会销毁对象?