【发布时间】:2015-06-24 18:34:45
【问题描述】:
假设我有以下一组数据:
$foobar = array(
"foo" => array (
"foo1" => 1,
"foo2" => 2,
"foo3" => 3
),
"bar" => array (
"bar1" => 1,
"bar2" => 2,
"bar3" => 3,
),
);
在标准 PHP 中,我可以执行以下操作:
$_SESSION['foobar'] = $foobar;
然后,调用值,以 bar2 为例:
$_SESSION['foobar']['bar']['bar2'];
但是在 Zend Framework 2 中这样做呢?
我已经为会话管理器设置了所有参数的引导程序,并且已经设置了容器。会话被创建。所以,如果我这样做,例如:
$session = new Container('foobar');
并在其中输入一个值:
$session->foo1 = 1;
这行得通。如果我决定将数组作为会话变量,则相同:
//placing the $foobar array defined before
$session->foobar = $foobar;
但我不知道如何调用值。假设我想要 foo2,我会这样做
echo $session->foobar->foo->foo2;
期望它会输出“2”,但我得到一个错误:
所以我试着做
echo $session->foobar['foo']['foo2'];
但这会返回另一个错误。
所以现在我不知道我应该如何收集这些数据,或者我如何以不同的方式存储会话变量。我需要这个来制作购物车,所以 foo 和 bar 是不同的产品。我怎么能这样做?
【问题讨论】:
-
您从
$session->foobar['foo']['foo2']得到什么错误?我原以为这会奏效。 -
@Tim Fountain 非常奇怪:我现在没有错误......我昨天得到了非法偏移。
标签: php arrays session zend-framework shopping-cart