【发布时间】:2020-09-03 21:28:58
【问题描述】:
我在会话中有一个包含数字数组的变量。我想更改该变量中的特定数字。 我的会话:
$user_data = array(
'user_id' => $user_id,
'username' => $username,
'logged_in' => true,
// 20 slots, the counting starts from 0, the last slot's position
// is 19.
'slots_id' => array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
);
所以,slots_id 是我要访问的变量。我需要更改最后一个数字。在我的控制器中,我有以下内容。
$this->session->set_userdata('slots_id'[19], 100);
这里我试图将最后一个插槽的值设置为 100。但是我放在那里的“[19]”会导致错误。
A PHP Error was encountered Severity: Notice Message: Uninitialized string offset: 19
Google 在我目前的情况下没有帮助我,感谢您抽出宝贵时间。
【问题讨论】:
-
你试过
$this->session->set_userdata('slots_id[19]', 100);吗?您的代码正在尝试更新 'slots_id' 字符串的第 19 位并超出范围,因为slots_id是一个 8 个字符的字符串。我提议的小改动会改变索引为 19 的slot_id数组的值 -
'slots_id[19]'只是将 'slots_id[19]' 作为字符串文字传递。如果您查看此方法的文档,则在双参数形式中,第一个参数是您要查找的键的字符串。 codeigniter.com/userguide3/libraries/sessions.html
标签: php arrays codeigniter