我有一个会话类如下:
<?php
class Session {
function __construct() {
if (empty(session_id())) {
session_start();
}
}
function AddMessage($msg="") {
if (!is_array($_SESSION['messages'])) {
$_SESSION['messages'] = [];
}
array_push($_SESSION['messages'], $msg);
}
function GetMessages() {
$messages = $_SESSION['messages'];
unset($_SESSION['messages']);
return $messages;
}
}
?>
我的布局目录中还有一个php文件:
<?php if (!empty($_SESSION['messages'])) { ?>
<div class="messages">
<ul>
<?php
$messages = $session->GetMessages();
foreach ($messages as $message) {
echo "<li class=\"message\">{$message}</li>";
}
?>
</ul>
</div>
<?php }?>
上面这段代码包含在我的页面顶部。 问题是,如果单页提交处理 - 在页面中间完成 - 在我使用AddMessage()方法设置之前打印出消息。
是否有一种解决此问题的简单方法,或者我必须重新考虑我的代码流?