所以我的问题是我在会话var中设置一条消息以在页面重定向中继承。 然后将var设置为空字符串,以便每次都不重新显示。 像这样:
if ($successMsgs || !empty($_SESSION['msg_success'])) {
$success_block[] = '<ul id="success-block">';
foreach($successMsgs as $success) {
$success_block[] = '<li>'.$success.'</li>';
}
if (!empty($_SESSION['msg_success'])) {
$success_block[]='<li>'.$_SESSION['msg_success'].'</li>';
$_SESSION['msg_success']='';
}
$success_block[] = '</ul>';
$success_block = implode('',$success_block);
}
问题在于会话var的清除似乎具有反复活动效果,因此消息永远不会显示。它只有在我取出将其重新设置为空字符串的行时才有效。我在想有什么关于什么时候评估会话变量我不明白?
答案 0 :(得分:2)
除了在调用函数和类之后自由定义函数和类之外,PHP中肯定没有任何反向活动。会话变量将在session_start()
命令后可用。在块中取消设置会话变量在代码发生之前不会产生影响。
您的问题必须与其他内容有关 - 也许页面会被调用两次,或者是否会发生标题重定向?
答案 1 :(得分:1)
事实证明,在实际重定向之前,重定向下的代码正在运行。解决方案只是向重定向函数添加退出。
答案 2 :(得分:0)