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

时间:2018-04-27 09:42:47

标签: php session session-variables php4

我在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;
    }
}

1 个答案:

答案 0 :(得分:0)

解决方案

我找到了解决问题的解决方案。这里是我的新代码&它完美无缺:

$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;
    }
}