Php 如何更改会话ID?

Php 如何更改会话ID?,php,zend-framework2,Php,Zend Framework2,如何使用Zend\session\SessionManager切换到以前保存的会话?我知道会话ID 例如,这不起作用: $sm->start(); $sm->setId('abc'); $\u会话将不包含会话“abc”的数据。在$sm->start()之后调用$sm->writeClose(),也没有帮助 我可以使用标准PHP函数轻松完成此操作: session_start(); session_write_close(); session_id('abc'); session_

如何使用
Zend\session\SessionManager
切换到以前保存的会话?我知道会话ID

例如,这不起作用:

$sm->start();
$sm->setId('abc');
$\u会话
将不包含会话“abc”的数据。在
$sm->start()
之后调用
$sm->writeClose()
,也没有帮助

我可以使用标准PHP函数轻松完成此操作:

session_start();
session_write_close();

session_id('abc');
session_start();

//$_SESSION is populated with 'abc' data.

Zend为此使用会话名称空间。如果您为会话命名如下

$sess = new Zend_Session_Namespace('abc');
您可以通过
$sess->var
访问内容,只需重新创建同名的新会话,即可将会话重新加载到不同的PHP文件中


我投了反对票,因为它显示了ZF1-但在ZF2中它仍然非常相同,因此提示仍然很好;)问题在于切换会话,而不是为同一会话命名。为什么要这样做?名称空间以更少的开销和麻烦提供了相同的功能。