在会话中访问数组变量(CodeIgniter)

时间:2011-01-21 15:59:34

标签: codeigniter

我有一个名为config的数组。我正在尝试在会话中回显数组中的变量。

我试过了:

echo $this->session->userdata('config['item']'); 

但它不起作用。这里我的语法有什么问题?我打印了我的会话,这些项目都在配置数组中。我也试过了:

echo $this->session->userdata("config['item']");

这次我没有错误,但也没有数据。

3 个答案:

答案 0 :(得分:19)

如果config是一个数组。而item是您想从配置中获取的字符串名称

echo $this->session->userdata($config['item']);

echo $_SESSION[$config['item']];

如果config是会话内的数组,你应该先得到它。

$tmp = $this->session->userdata('config');
echo $tmp['item'];

echo $_SESSION['config']['item'] 

抱歉我的英文。

答案 1 :(得分:9)

如果要使用会话数组,请使用变量,而不是函数:

echo $this->session->userdata['user_data']['item'];

如果你想写:

$this->session->userdata['user_data']['item'] = 'value';
$this->session->userdata['other_data']['other'] = 'value2';
$this->session->sess_write();

这允许您编辑数组中的值,就像使用$ _SESION ['user_data'] ['avatar'] = $ avatar一样,只使用一行,只使用CI库。

答案 2 :(得分:0)

总是以这种方式逃避你的字符串:

echo $this->session->userdata('config[\'item\']');