我必须迁移一个php4应用程序,使用session_set_save_handler()
到php5。奇怪的行为迁移会话与回调从php4到php5
在php4中一切都很好,但在php5中,回调函数无法访问全局变量,这些变量在调用session_set_save_handler()
之前设置在页面上。
在下面的全局变量$ G1的例子不能在session_writer()
访问(这是作为一个回调函数传递)
是否有此行为的一些解释,或者你可以给一个提示与回调迁移会议从php4到5?
这是伪代码:
function session_writer($id,$vars) {
global $g1;
echo "g1 not defined here: ".is_object($g1);
}
global $g1;
$g1 = SomeObject(); //which is the DB connection for the session writer
session_set_save_handler($o,$c,$r,"session_writer",$d,$g);
session_start();
谢谢,我开始掌握这里发生的事情。 SomeObject()是我的数据库。所以我可以重构并将DB对象的创建复制到session_writer本身,这会是最简单的吗? – user89021 2009-07-05 22:10:53