包含PHP

时间:2016-01-19 09:12:46

标签: php yii flash-message

我在PHP上开展一个项目,它不使用任何类型的PHP框架。我来自Yii背景,我已经使用过:

Yii::app()->user->setFlash('flash_name', 'Flash value');

并检查:

Yii::app()->user->hasFlash('flash_name');

要检查它是否存在以及是否存在,并获取其使用的值:

Yii::app()->user->getFlash('flash_name', 'Default Flash value');

目前,我已将这些功能写入setcheckget闪存:

function set_flash($flash_name, $value) {
    $_SESSION['flashes'][$flash_name] = $value;
}

function has_flash($flash_name) {
    return isset($_SESSION['flashes'][$flash_name]) ? true : false;
}

function get_flash($flash_name, $default_value = null) {
    if(has_flash($flash_name)) {
        return $_SESSION['flashes'][$flash_name];
    }

    return $default_value;
}

然而,当我在post.php中使用它时,这样:

set_flash('success', true);

并在index.php中查看,如下所示:

<div class="container">
    <?php if(has_flash('success') && (get_flash('success') === true)): ?>
        <div class="alert alert-success">
            <h4>Success!</h4>
            <hr />
            <p>You have successfully posted new content on your website. Now you can edit or delete this post.</p>
        </div>
    <?php endif; ?>
</div>

每当我刷新页面时,消息仍然会出现在那里。

如何在使用或调用闪光灯后移除闪光灯?

1 个答案:

答案 0 :(得分:2)

get_flash添加新行:

function get_flash($flash_name, $default_value = null) {
    if(has_flash($flash_name)) {
        $retVal = $_SESSION['flashes'][$flash_name];
        // don't unset before you get the vaue
        unset($_SESSION['flashes'][$flash_name]); 
        return $retVal;
    }

    return $default_value;
}