我有一个会话数组,我想逐个推送一系列字符串。我是这样做的:
$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
。
希望有一种更简单的方法来实现这一目标。
答案 0 :(得分:1)
在推送之前,检查它是否是一个数组。如果没有,请创建一个空的
$oldSession = $this->session->userdata('mySession');
if (!is_array($oldSession)) $oldSession = array();
array_push($oldSession, $data);
$this->session->set_userdata('mySession', $oldSession);