即使在未设置PHP值后,会话值仍然存在

时间:2015-01-12 11:59:28

标签: php codeigniter session

我在PHP中重置会话变量的值时遇到了问题。

我清除了所有浏览器Cookie并缓存并加载了一个页面。 调用页面的控制器,其中写入以下代码:

if(isset($_SESSION['event_generic_sequence'])){
        unset($_SESSION['event_generic_sequence']);
}
$_SESSION['event_generic_sequence'] = array();

此控制器调用类文件中的函数,它检查会话是否已设置,然后将值附加到会话:

$_SESSION['event_generic_sequence'][] = $image_name;

在控制器结束时,如果打印了会话值,我会得到一个包含4个值的数组。因此,数组的计数是4:

[event_generic_sequence] => Array
    (
        [0] => 505_c.jpg
        [1] => 505_c-1.jpg
        [2] => 505_c-2.jpg
        [3] => 505_c-3.jpg
    )

当我重新加载页面时。调用控制器并将会话值设置为空数组。但是在类文件中,如果我打印会话值。它显示了会话的先前值。为什么类文件没有获得当前会话值,并且会话的值似乎已被缓存?

如果我清除浏览器cookie和缓存,会话值为空并且工作正常。但如果我没有持续会话的最后一个值。

1 个答案:

答案 0 :(得分:0)

您可以使用session_start();来启动会话,使用session_destroy();来销毁会话,否则将该特定变量的会话设置为null或为空。