Php 未调用SessionHandlerInterface写入方法

Php 未调用SessionHandlerInterface写入方法,php,Php,因此,我创建了一个实现SessionhandlerInterface的类,并将其设置为会话处理程序: $sessionHandler = new SessionHandler(); session_set_save_handler($sessionHandler); session_start(); 问题是,从未调用write函数 如果我使用session\u set\u save\u handler的第二个参数并将其设置为false: session_set_save_handler($se

因此,我创建了一个实现SessionhandlerInterface的类,并将其设置为会话处理程序:

$sessionHandler = new SessionHandler();
session_set_save_handler($sessionHandler);
session_start();
问题是,从未调用write函数

如果我使用session\u set\u save\u handler的第二个参数并将其设置为false:

session_set_save_handler($sessionHandler, false);
然后它就正常工作了。有人能给我解释一下这种行为吗?我使用的是PHP5.4.6

文件中写有:

当使用对象作为会话保存处理程序时,向PHP注册shutdown函数非常重要,以避免PHP在关闭时内部销毁对象的方式产生意外的副作用,并可能阻止调用write和close。通常,您应该使用register\u shutdown\u function()函数注册“会话写入关闭”

从PHP5.4.0开始,在使用OOP方法调用session_set_save_handler()并传递实现SessionHandlerInterface的实例时,可以使用session_register_shutdown()或只使用“register shutdown”标志

但我并不完全理解这一点。

声明如下:

“写入”处理程序只有在输出流结束后才会执行 关闭因此,“write”处理程序中调试语句的输出 将永远不会在浏览器中看到。如果需要调试输出, 建议将调试输出写入文件


这可能就是为什么如果您使用一个简单的
echo

SessionHandler的实现是什么?当您调用
session\u write\u close()
时如何?感谢您在
session\u set\u save\u handler
的文档中引用这一行。在
write
的文档中,没有提到这一点。。。