unset命令后无法进入会话数组

时间:2015-11-09 13:39:08

标签: php codeigniter

我有一个会话数组,我想逐个推送一系列字符串。我是这样做的:

$oldSession = $this->session->userdata('mySession');
array_push($oldSession, $data);
$this->session->set_userdata('mySession', $oldSession);

经过一些循环,现在我想清除这个数组,这样我就可以重新开始整个过程​​。为此,我使用:

$this->session->unset_userdata('mySession');

不幸的是,在此之后,我无法使用我以前的代码,array_push($oldSession, $data);要求$oldSession采用数组的形式。我甚至尝试了以下方法:

if (!$oldSession) {
   $this->session->set_userdata('mySession', $data);
}

但是这会将数据作为string添加到会话中,在下一个循环中,我再也无法使用array_push

希望有一种更简单的方法来实现这一目标。

1 个答案:

答案 0 :(得分:1)

在推送之前,检查它是否是一个数组。如果没有,请创建一个空的

$oldSession = $this->session->userdata('mySession');
if (!is_array($oldSession)) $oldSession = array();
array_push($oldSession, $data);
$this->session->set_userdata('mySession', $oldSession);