我正在处理成员编辑页面,因此对于每个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工作正常,但我唯一的问题是,如果这是正确的方法吗?
答案 0 :(得分:2)
我能想到的唯一改进就是在一个foreach中完成所有这一切,并且没有必要取消你要替换的价值
foreach($result as $key => $value) {
// not necessary if you are going to replace the value anyway
//unset($_SESSION[$key]);
$_SESSION[$key] = $value;
}