我正在使用此代码输出所有已注册的会话变量 -
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
exit();
这就是我得到的
Array
(
[language] => english
[navigation] => navigationHistory Object
(
[path] => Array
(
[0] => Array
(
[get] => Array
(
)
[post] => Array
(
)
)
[1] => Array
(
[get] => Array
(
)
[post] => Array
(
[number] => XXXXXXXXXXXX
[x] => 62
)
)
)
)
)
我想将[1]数组中的数字变量从XXXXXXXX更新为555555.我试过了
$_SESSION['number'] = "55555555555555";
但最终创建了一个名为数字之外的新会话变量,其值为555 ..并且没有更新正确的值。可以这样做吗?
答案 0 :(得分:2)
它是一个嵌套的数组/对象,所以你必须遍历到你想要设置的数组变量:
$_SESSION['navigation']->path[1]['post']['number'] = "55555555555555";
答案 1 :(得分:1)
试试这个:
$_SESSION['navigation']->path[1]['post']['number']=123;
答案 2 :(得分:1)
我自己常常对此感到困惑,这需要我一些时间来解释这些真正很长的人。一个非常简单的方法让你自己解决这个问题:执行以下操作:在代码的最后,你有一个print_r:
print_r($_SESSION);
猜猜层次结构中的下一个级别是什么:
print_r($_SESSION['navigation'])
运行它,如果出现错误,请尝试其他方法。如果它有效,你应该看到那个人的印刷品,你正在“接近”你的价值。一旦看起来不错,就可以使用另一个属性:
print_r($_SESSION['navigation']->path);
这有用吗?好的,继续。并且一直这样做,直到你得到你想要的。