将一个变量SESSION放到另一个变量中,删除SESSION内容变量

Put a variable SESSION in an other variable, delete SESSION content variable

我在 PHP 4.3.9 中有一个应用程序,但我在 SESSION 中遇到了问题。 当我将变量 SESSION 放入另一个变量时,如下所示:

$tempInsInscription = $_SESSION['ins_inscription'];

$_SESSION['ins_inscription'] 内容已删除。

我不明白为什么。是PHP4的特殊性吗?


编辑

我尝试了很多案例来找到我丢失内容的确切位置,这是在 foreach 中:

reset($tempInsInscription);
foreach($tempInsInscription as $key => $ins_inscription){
    if(is_array($ins_inscription)){
        reset($ins_inscription);
        foreach($ins_inscription as $key_etape => $etape){
            $_SESSION["dossier"][$key_etape]=$etape;
        }       
    }else{
        $_SESSION["dossier"][$key]=$ins_inscription;
    }
}

解决方案

我找到了解决问题的方法。这是我的新代码,它运行良好:

$tempInsInscription = $_SESSION['ins_inscription'];
$_SESSION['ins_inscription'] = $tempInsInscription;

reset($tempInsInscription);
while(list($key, $ins_inscription) = each($tempInsInscription)) {
    if(is_array($ins_inscription)){
        reset($ins_inscription);
        while(list($key_etape, $value_etape) = each($ins_inscription)) {
            $dossier[$key_etape]=$value_etape;
        }
    }else{
        $dossier[$key]=$ins_inscription;
    }
}

解决方案

我找到了解决问题的方法。这是我的新代码,它运行良好:

$tempInsInscription = $_SESSION['ins_inscription'];
$_SESSION['ins_inscription'] = $tempInsInscription;

reset($tempInsInscription);
while(list($key, $ins_inscription) = each($tempInsInscription)) {
    if(is_array($ins_inscription)){
        reset($ins_inscription);
        while(list($key_etape, $value_etape) = each($ins_inscription)) {
            $dossier[$key_etape]=$value_etape;
        }
    }else{
        $dossier[$key]=$ins_inscription;
    }
}