我想清除我的会话vqriqble" flash'使用unset函数,但现在我无法打印我的flash消息,因为在我之前的代码之前调用了unset函数。 它在我的标题模板中调用:header.php将在代码开头的每个页面中调用。
这是代码:
<?php if(isset($_SESSION['flash'])): ?>
<?php foreach($_SESSION['flash'] as $type => $message): ?>
<div class="alert alert-<?= $type; ?> bk-fullwidth-alert">
<p><?= $message; ?></p>
</div>
<?php endforeach; ?>
<?php unset($_SESSION['flash']); ?>
<?php endif; ?>
谢谢你们的帮助!
答案 0 :(得分:1)
试试这个。问题是unset()在循环内部,因此在第一次循环执行时未设置变量。
<?php if(isset($_SESSION['flash'])): ?>
<?php foreach($_SESSION['flash'] as $type => $message): ?>
<div class="alert alert-<?= $type; ?> bk-fullwidth-alert">
<p><?= $message; ?></p>
</div>
<?php endforeach; ?>
<?php unset($_SESSION['flash']); ?>
<?php endif; ?>
修改:试一下
<?php
if(isset($_SESSION['flash'])) {
$flash = $_SESSION['flash'];
unset($_SESSION['flash']);
foreach($flash as $type => $message) {
?>
<div class="alert alert-<?=$type?> bk-fullwidth-alert">
<p><?=$message?></p>
</div>
<?php
}
}
?>