0

これを行うと、少し問題が発生します。

$_SESSION['cartItems'] = array();

これは問題なく動作し、セッションで cartItems 配列を作成します。

しかし、私がこれを行うとき:

$_SESSION[2]['cartItems'] = array();

これは、ページを更新するまで機能し、その後、このセッション配列を忘れますか?

最初に2つの配列を作成しようとしました:

$_SESSION[2] = array();
$_SESSION[2]['cartItems'] = array();

しかし、それでも想定どおりには機能しません。

どうすればこれを解決できますか?

4

2 に答える 2

3

$_SESSION変数は連想配列であるため、数値キーは文字列に変換されます。$_SESSION["2"]値を代入または取得するときに使用してみてください。

さらに、いくつかのカート配列を永続化しようとしているように見えるので、代わりに次のようなものを使用しないでください:

$_SESSION['carts'] = array();
$_SESSION['carts'][0] = array();
$_SESSION['carts'][1] = array();
...

あるいは$_SESSION['carts'][0]['cartItems'] = array()

さらに読むためのいくつかの関連記事:

于 2013-06-27T11:45:50.187 に答える
-1

シリアル化されたオブジェクトとして使用することをお勧めします。

$_SESSION['carts'] = serialize(array(0=> "foo", 1=> array("bar")));

この場合、複雑なデータを保存でき、安全でクリーンになります。

于 2013-06-27T11:57:52.783 に答える