我像这样创建一个容器:
$frontend = new SessionContainer('frontend', null);
我像这样设置一个变量:
$frontend->offsetSet('foo',$bar);
我的问题是,当您需要在其他地方访问它时,您真的应该在任何地方使用相同的键实例化一个新的 SessionContainer 并获取 var 吗?或者,会话数据是否在控制器中可用的另一个变量中传递?
我像这样创建一个容器:
$frontend = new SessionContainer('frontend', null);
我像这样设置一个变量:
$frontend->offsetSet('foo',$bar);
我的问题是,当您需要在其他地方访问它时,您真的应该在任何地方使用相同的键实例化一个新的 SessionContainer 并获取 var 吗?或者,会话数据是否在控制器中可用的另一个变量中传递?
首选做法是直接访问会话值,就好像它们是实例化容器对象的属性一样。
$frontend = new SessionContainer('frontend');
$bar = $frontend->foo;
会话容器类通过调用以下方式在幕后完成其余工作:
$frontend->__get('foo');
这反过来又调用:
$frontend->offsetGet('foo');
使用上面的第一个示例有助于提高可读性。出于同样的原因,您可以使用:
$frontend->foo = 'bar';
这在幕后调用:
$frontend->__set('foo', 'bar');
... 接着:
$frontend->offsetSet('foo', 'bar');