用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1646|回复: 4
收起左侧

[讨论/交流] 急!~~~怎么修改session里头的值

[复制链接]
发表于 2016-8-30 11:24:02 | 显示全部楼层 |阅读模式
$arr =  array('aa' => 'aaa');
$this->session->set_userdata('arr',$arr);
$a = $this->session->userdata('arr');
$a['aa'];//都能取到值'aaa'
$this->session->userdata('arr')['aa'];//都能取到值'aaa'
但我想改更新session里的值,想把session里头的aaa改成bbb,不管我用
$a['aa'] = 'bbb';//这个方法改变不了session里的值
$this->session->userdata('arr')['aa'] = 'bbb';//也改变不了,
怎么才能改变session里头的值
发表于 2016-8-30 11:28:34 | 显示全部楼层
沒想到你又發了 ... 才剛貼消息給你了說
那我的回覆再貼一次吧



$this->session->userdata('arr')['aa'];
這是 PHP 的新特性,可以呼叫某個函數然後直接取他的 key 值
但我還是建議你分開取,因為你無法預期"一定會拿到函數值"然後就會噴錯了

要搞清楚的是,userdata() 是取值,並不是給你賦予值用的
還是得回到傳統的方式,把 arr 取出來,更改 aa,再重新賦予 arr 新陣列

如果你要取值和賦予值同時能用,那你還是回去寫 PHP 吧 ( $_SESSON )
別忘了,CI 是建立在 PHP 的基礎底下,所有的 PHP 函數還是可以使用的

 
 楼主| 发表于 2016-8-30 11:34:46 | 显示全部楼层
Closer 发表于 2016-8-30 11:28
沒想到你又發了 ... 才剛貼消息給你了說
那我的回覆再貼一次吧

真心谢谢你的教导 ,真的急,怕你没空!只好这里再发一次
发表于 2016-8-30 12:25:16 | 显示全部楼层
一看问题就知道没看手册  哎  这世界上真的没有不下功夫就能成功的事
发表于 2016-8-31 10:25:50 | 显示全部楼层
重新使用 set_userdata() 修改 session 的值。

本版积分规则