我必須遷移一個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