0

我正在使用此代码输出所有注册的会话变量 -

 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";

但这只是最终在数组外部创建了一个名为 number的新会话变量,其值为 555.. 并且没有更新正确的变量。这可以做到吗?

4

3 回答 3

2

它是一个嵌套数组/对象,因此您必须向下遍历到要设置的数组变量:

$_SESSION['navigation']->path[1]['post']['number'] = "55555555555555";
于 2012-11-02T16:54:06.033 回答
1

尝试这个:

$_SESSION['navigation']->path[1]['post']['number']=123;
于 2012-11-02T16:55:34.717 回答
1

我自己经常对此感到困惑,我需要一点时间才能弄清楚这些非常长的家伙。您自己弄清楚这些东西的一个非常简单的方法是执行以下操作:在您的代码末尾,您有一个 print_r:

print_r($_SESSION);

猜测层次结构中的下一层是什么:

print_r($_SESSION['navigation'])

运行它,如果出现错误,请尝试其他方法。如果可行,您应该会看到那个人的照片,并且您正在“接近”您的价值。一旦看起来不错,就添加另一个属性:

print_r($_SESSION['navigation']->path);

那样有用吗?好的,继续。一直这样做,直到你得到你想要的。

于 2012-11-02T17:08:20.220 回答