0

我想知道如何实现以下目标:

我有一个工厂创建的这个会话容器:

        $container = new Container('Fans');
        $container->setExpirationSeconds('219867583');
        return $container;

然后我在我的控制器中创建一个实例,如下所示:

$this->sessionService = $this->getServiceLocator()->get('SessionService');

现在我想在 Session 中添加一些东西:

这个工作正常:

$this->sessionService->team = 'TEST';

但我想要实现的是以下

$this->sessionService->team[0] = 'Team Name 0' // This doesn't work;
$this->sessionService->team[1] = 'Team Name 1' // This doesn't work;
\Zend\Debug\Debug::dump($this->sessionService->team);

输出如下所示:

<pre>string(9) "TEST" </pre>

我不知道我是否误解了什么或做错了什么。

有人知道怎么做吗?

4

2 回答 2

1

这是__get()PHP 中神奇功能的问题。因为Zend\Session用于__get()提供对会话变量的访问,所以您不能像访问数组一样访问它们。什么有效,如下:

$team = array();
$team[0] = 'Team Name 0';
$team[1] = 'Team Name 1';
$this->sessionService->team = $team;
于 2013-01-06T16:40:34.640 回答
0

使用数组怎么样?

$teams = array();
$session->teams = $teams;
$session->teams[0] = 'blubb';

如果您首先将其指定为字符串,则它将保持为字符串。将其设为数组并将其用作数组;)

于 2013-01-06T16:40:31.997 回答