有人可以快速帮助我使用 CodeIgniter 的语法。我需要访问存储在会话的用户数据中的数组,但我无法找出正确的语法。
<?php echo $this->session->userdata['user_session']['first_name']; ?>
给我这个错误:
致命错误:不能将 stdClass 类型的对象用作数组
此问题中给出的所有答案都不起作用: Access array variable in session (CodeIgniter)
有人可以快速帮助我使用 CodeIgniter 的语法。我需要访问存储在会话的用户数据中的数组,但我无法找出正确的语法。
<?php echo $this->session->userdata['user_session']['first_name']; ?>
给我这个错误:
致命错误:不能将 stdClass 类型的对象用作数组
此问题中给出的所有答案都不起作用: Access array variable in session (CodeIgniter)
我找到了正确的语法。好吧,至少有一种方法可以解决它。@Matt GrubB 是最接近的,让我走上了正确的道路。
$temp_session = $this->session->userdata('user_session');
echo $temp_session->first_name;
由于userdata
是在我查询数据库时创建的一个充满信息的对象,因此访问数据的最简单方法是将其放入另一个临时数组中。然后你必须刺伤它。我一直在尝试做$this->temp_session->first_name
或类似的事情时跌跌撞撞。
这是您获取会话数据的方式:
echo $this->session->userdata('first_name');
自从我在 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 数组的用途。