有人可以使用CodeIgniter的语法快速帮助我。我需要访问存储在会话的userdata中的数组,我无法弄清楚正确的语法。
<?php echo $this->session->userdata['user_session']['first_name']; ?>
给了我这个错误:
致命错误:无法使用stdClass类型的对象作为数组
此问题中给出的所有答案都不起作用: Access array variable in session (CodeIgniter)
答案 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
或其他类似的东西而磕磕绊绊。