在PHP脚本代码中 session_set_save_handler接管所有session的管理,利用各个时期的回调函数对session进行管理。
session handler默认启动顺序是:在session_start()后,首先调用open回调函数,然后调用 read回调函数,接着就是PHP脚本运行,直到结束,收集$_SESSION(默认在内存中),然后关闭PHP脚本,这时就会调用write回调函数,接着调用close回调函数。
如何改变session handler默认启动顺序呢?可以使用 session_commit(); 或者 session_write_close();函数调用的时候,session的机制就改变了,直接写入文件,关闭文件。然后再执行脚本
首先执行open回调函数, read ,然后等待脚本结束,收集$_SESSION(默认在内存中),然后关闭脚本,然后执行write,写入文件,然后close。