Zend会话似乎在每个页面加载时重新启动

时间:2012-03-28 20:09:38

标签: php zend-framework

我在尝试让Zend会话正常工作时遇到了很多麻烦。基本上,我需要做的是在网站加载时设置一次变量。然后,该变量应在会话的整个生命周期内保持不变。

为了使这一点更加清晰,让我们采取以下方案:

在Bootstap.php中,我有

protected function _initSession() {
    $session = new Zend_Session_Namespace();
    $session->testValue = rand(0, 100);
}

然后,我在应用程序的其他地方访问它,如下所示:

$session = new Zend_Session_Namespace();
echo $session->testValue;

现在我希望$ session-> testValue将被分配一次,并且该值在每个后续页面请求上都是相同的。但实际上,正在发生的事情是$ session-> testValue每次都是一个新的随机数。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

每次运行Bootstrap.php时,它都会覆盖testValue属性。只有在尚未设置的情况下才设置它。

protected function _initSession() {
    $session = new Zend_Session_Namespace();
    if (!isset($session->testValue)) {
        $session->testValue = rand(0, 100);
    }
}