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

しかし、それは555 ..値で配列の外にnumberという新しいセッション変数を作成し、正しい値を更新しないことになりました。これはできますか?

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 に答える