因此,我创建了一个实现SessionhandlerInterface的类,并将其设置为 session 处理程序:
$sessionHandler = new SessionHandler();
session_set_save_handler($sessionHandler);
session_start();
问题是,永远不会调用write函数。
如果我使用session_set_save_handler的第二个参数并将其设置为false:
session_set_save_handler($sessionHandler, false);
然后它可以正常工作。有人可以向我解释这种行为吗?我正在使用PHP 5.4.6。
在文档中写道:
从PHP 5.4.0开始,在使用OOP方法调用session_set_save_handler()并传递实现SessionHandlerInterface的实例时,可以使用session_register_shutdown()或仅使用“register shutdown”标志。
但是我不完全明白这一点。
最佳答案
documentation声明以下内容:
这就是为什么如果使用简单的echo
却看不到正在调用该函数的原因。