PHP会话在多维时不会持久化

时间:2013-06-27 11:41:38

标签: php

当我这样做时,我遇到了一个小问题:

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

它工作正常,并在会话中创建一个cartItems数组。

但是当我这样做时:

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

这一直有效,直到我刷新页面,然后忘记了这个会话数组?

我首先尝试创建2个数组:

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

但仍然没有像预期的那样发挥作用。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

数字键被转换为字符串,因为$_SESSION变量是一个关联数组。您可能希望在分配或检索值时尝试使用$_SESSION["2"]

此外,在我看来,你试图坚持使用几个购物车阵列,所以为什么不使用这样的东西呢?

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

甚至是$_SESSION['carts'][0]['cartItems'] = array()

进一步阅读的一些相关帖子:

答案 1 :(得分:-1)

我建议你使用序列化对象。

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

在这种情况下,您可以存储复杂的数据,它将是安全的。清洁。