为什么当我重定向到同一脚本时,我的会话变量被自动取消设置


Why my sessions variables have been automatically unset when i redirect to then same script?

我在testmysql中设置了一个名为foo的会话变量.php我将脚本再次重定向到它们相同的脚本,在那里我打印会话var然后取消设置它..但是,当我重定向时,会话 var 似乎已经未设置..为什么会这样,我该如何解决这个问题?

<?php 
session_start();
if(empty($_GET)) {
    $_SESSION['foo'] = 'bar';
    header("location:testmysql.php?redirect". '=' . 'bar');
}
var_dump( $_SESSION);
unset ($_SESSION['foo']);

设置重定向时不会中止脚本,因此始终执行unset ($_SESSION['foo'])

<?php 
session_start();
if(empty($_GET)) {
    $_SESSION['foo'] = 'bar';
    header("location:testmysql.php?redirect". '=' . 'bar');
    exit; // <--- Missing
}
var_dump( $_SESSION);
unset ($_SESSION['foo']);

if替换为if else

if(empty($_GET)) {
    $_SESSION['foo'] = 'bar';
    header("location:testmysql.php?redirect". '=' . 'bar');
}
else
{
    var_dump( $_SESSION);
    unset ($_SESSION['foo']);
}