使用 foreach 设置多个会话属性



我正在处理成员编辑页面,因此对于每个 html 输入,我使用会话来回显以下值:

value="<?php echo htmlspecialchars($_SESSION['username']));?>
value="<?php echo htmlspecialchars($_SESSION['email']));?>

等。。。成员编辑个人资料后,我再次使用查询来获取新的更新$results。

这是我取消设置/设置新会话的旧方法:

unset($_SESSION['user']); 
unset($_SESSION['email']); 
unset($_SESSION['first_name']); 
unset($_SESSION['last_name']); 
unset($_SESSION['birth_date']); 
unset($_SESSION['about_me']); 
unset($_SESSION['gender']);
unset($_SESSION['last_activity']);
unset($_SESSION['image_avatar']);   

$_SESSION['user'] = $result['user']; 
$_SESSION['email'] = $result['email']; 
$_SESSION['first_name'] = $result['first_name']; 
$_SESSION['last_name'] = $result['last_name']; 
$_SESSION['birth_date'] = $result['birth_date']; 
$_SESSION['about_me'] = $result['about_me']; 
$_SESSION['gender'] = $result['gender'];
$_SESSION['last_activity'] = $result['last_activity'];
$_SESSION['image_avatar'] = $result['image_avatar'];

但是我想要更少的代码行,并尝试像这样制作foreach:

    foreach($result as $key => $value) {
        unset($_SESSION[$key]);
    }
    foreach($result as $key => $value) {
        $_SESSION[$key] = $value;
    }

使用 foreach 工作正常,但我唯一的问题是,如果这是正确的方法?

我能想到的唯一改进是一次性完成所有操作,并且无需取消设置要替换的值

foreach($result as $key => $value) {
    // not necessary if you are going to replace the value anyway
    //unset($_SESSION[$key]);
    $_SESSION[$key] = $value;
}

最新更新