我正在使用 PHP 5.4.12
我有两节课
<?php
class MySessionHandler implements SessionHandlerInterface {
//..
}
$handler = new MySessionHandler();
session_set_save_handler($handler,true);
?>
和
<?php
class MySession {
//..
function __destruct() {
session_write_close();
echo 'called';
}
}
使用这段代码,MySession 的析构函数永远不会被调用。
<?php
require_once 'MySessionHandler.php';
include_once 'MySession.php';
$test = new MySession();
但是有了这段代码,“MySession”析构函数就可以调用了
<?php
require_once 'MySessionHandler.php';
include_once 'MySession.php';
class Test {
function __construct() {
$test = new MySession();
}
}
$obj = new Test();
我已经测试了 session_set_save_handler($handler,true/false)。我需要调用 MySession 的析构函数,因为我对 session_write_close() 有疑问;我必须明确地调用它,否则会话永远不会被写入服务器。
有什么解决方法吗?我已将代码简化为它们的根源,但 __destruct 方法不应该在应该调用的时候调用。