PHP - unset函数在我的代码之前取消设置我的var

时间:2016-01-04 23:10:44

标签: php function unset

我想清除我的会话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; ?>

谢谢你们的帮助!

1 个答案:

答案 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
        }
    }
?>