CodeIgniter会话语法

时间:2013-07-21 03:07:08

标签: php codeigniter

有人可以使用CodeIgniter的语法快速帮助我。我需要访问存储在会话的userdata中的数组,我无法弄清楚正确的语法。

<?php echo $this->session->userdata['user_session']['first_name']; ?>

给了我这个错误:

  

致命错误:无法使用stdClass类型的对象作为数组

此问题中给出的所有答案都不起作用: Access array variable in session (CodeIgniter)

3 个答案:

答案 0 :(得分:0)

这是获取会话数据的方式:

echo $this->session->userdata('first_name');

答案 1 :(得分:0)

自从我在Codeigniter工作了一段时间后,但如果我能记得正确的话,当你存储一个像你所说的那样的数组时,你会这样称呼:

$this->session->userdata("user_session")['first_name'];

如果有效,请告诉我?

或者您可以将该数据存储到变量中,然后以这种方式调用该数组。像这样:

$data = array("bar" => "the_value");
$this->session->set_userdata("foo", $data);
$foo = $this->session->userdata("foo");
echo $foo["bar"]; //Outputs the_value

如果有帮助,请告诉我。

但是,只是为了让您知道..通常,存储会话数据如下:

$this->session->set_userdata("first_name", "value");

真的没必要在userdata中设置你自己的数组,因为这通常是userdata数组的用途。

答案 2 :(得分:0)

我找到了正确的语法。好吧,至少有一种方法可以解决这个问题。 @Matt GrubB是最接近的,让我走上正轨。

$temp_session = $this->session->userdata('user_session');
echo $temp_session->first_name;

由于userdata是我查询数据库时创建的信息的对象,因此访问数据的最简单方法是将其放入另一个临时数组中。然后你必须刺它。我一直试图做$this->temp_session->first_name或其他类似的东西而磕磕绊绊。