丘思甲 发表于 2016-8-30 11:24:02

急!~~~怎么修改session里头的值

$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里头的值

Closer 发表于 2016-8-30 11:28:34

沒想到你又發了 ... 才剛貼消息給你了說
那我的回覆再貼一次吧

static/image/hrline/line3.png

$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
沒想到你又發了 ... 才剛貼消息給你了說
那我的回覆再貼一次吧



真心谢谢你的教导 ,真的急,怕你没空!只好这里再发一次

Aloghli 发表于 2016-8-30 12:25:16

一看问题就知道没看手册哎这世界上真的没有不下功夫就能成功的事

Hex 发表于 2016-8-31 10:25:50

重新使用 set_userdata() 修改 session 的值。
页: [1]
查看完整版本: 急!~~~怎么修改session里头的值