PHP-unset函数在我的代码之前取消设置我的var
我想使用unset函数清除我的会话vqriqble“flash”,但现在我无法打印我的flash消息,因为unset函数是在我之前的代码之前调用的。 它在我的header模板中被调用:header.php,它在代码开头的每个页面中都被调用 代码如下:PHP-unset函数在我的代码之前取消设置我的var,php,function,unset,Php,Function,Unset,我想使用unset函数清除我的会话vqriqble“flash”,但现在我无法打印我的flash消息,因为unset函数是在我之前的代码之前调用的。 它在我的header模板中被调用:header.php,它在代码开头的每个页面中都被调用 代码如下: <?php if(isset($_SESSION['flash'])): ?> <?php foreach($_SESSION['flash'] as $type => $message): ?> <
<?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; ?>
试试这个。问题是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; ?>
在循环后取消设置…?抱歉,我倒了两行,因为我正在测试代码,但它不工作…如果我删除取消设置函数,我的代码工作正常。这很奇怪,这段代码对我来说工作正常。但是,作为一种解决方法,您可以执行$flash=$\u SESSION['flash'];Unset($\u SESSION['flash']);
然后只使用$flash变量而不是$u SESSION['flash']来查看它是否有效。现在,您的register\u globals在php.ini上是打开还是关闭的?下面是上面的代码,您可以在线运行:当您在服务器上运行它时,这段代码会产生类似的结果吗?正如手册页上关于“register\u globals”的说明“在PHP官方网站上:从PHP5.3.0开始,此功能已被弃用,并从PHP5.4.0开始删除。
<?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
}
}
?>