Php 会话未执行该任务

Php 会话未执行该任务,php,session,Php,Session,为什么当我删除未设置的代码工作,但问题是消息没有被删除,所以我需要保留,谁能告诉我为什么代码不工作 请注意,我使用session_start()以前遇到过这个问题,但我用这种方法修复了它,并在本地环境中测试了它的工作情况 function display_message() { if (isset($_SESSION['message'])) { echo $_SESSION['message']; unset($_SESSION['message']);

为什么当我删除未设置的代码工作,但问题是消息没有被删除,所以我需要保留,谁能告诉我为什么代码不工作


请注意,我使用session_start()以前遇到过这个问题,但我用这种方法修复了它,并在本地环境中测试了它的工作情况

function display_message()
{
    if (isset($_SESSION['message'])) {
        echo $_SESSION['message'];
        unset($_SESSION['message']);
    }
}

不要在if语句内部使用unset函数,而是将其移到外部。

您可以使用unset函数,而是销毁会话减缩代码。 目的是命名会话

function display_message()
{

   if (isset($_SESSION['message'])) {
     echo $_SESSION['message'];
   }

   unset($_SESSION['message']);
}
session_start();
$\会话['name']=“name”;
回声“
”$_会话['name']。“
”; $\会话['family']=“family”; $\u会话['name']=null; 测试代码--------------------测试代码 如果(isset($\u会话['name'])){ echo“代码不起作用
”; echo$_会话['name']; }否则{ 回显“代码正在工作
”; } echo$_会话['family'];
尝试不取消设置(),但
$\u会话['message']=NULL可能是在您尝试取消设置会话数据之前,会话已关闭(通过会话写入会话关闭()),如果已关闭,则忽略修改。$\u会话['message']=NULL;仍然不工作欢迎使用堆栈溢出。请学习如何使用堆栈溢出,并阅读如何提高问题的质量。然后,你的问题包括你的源代码,作为一个测试,它可以由其他人测试。请参阅:
session\u destroy()
删除所有会话数据,因此这不是问题的答案。OP只想删除S_会话['message']
session_start();

    $_SESSION['name'] = "name";
    echo "<br>" . $_SESSION['name'] . "<br>";

    $_SESSION['family'] = "family";
    $_SESSION['name'] = null;




    test the code--------------------------------------test the code

    if (isset($_SESSION['name'])) {
        echo "The code didnt work<br>";
        echo $_SESSION['name'];
    } else {
        echo "The code is working<br>";
    }

    echo $_SESSION['family'];