我正在处理成员编辑页面,因此对于每个 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;
}