0

次のことを達成する方法を考えています:

私はこのセッションコンテナをファクトリによって作成しています:

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

次に、コントローラーに次のようなインスタンスを作成します。

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

今、私はセッションに何かを追加したいと思います:

これは正常に動作します:

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