我一直在查看PHP会话函数,看到了session_abort()
。
使用
session_abort()
的目的是什么?session_abort()
和session_destroy()
之间有什么区别?
session_abort()
与session_write_close()类似。
PHP在Web请求期间锁定会话数据,以防止多个同时请求导致数据损坏。
当请求1进入时,会话1被该进程锁定,以便进行任何必要的更改。如果请求2针对会话1进入,则php会阻止,直到会话锁定已释放,以确保请求2具有最新的会话数据。
session_abort()
关闭会话并释放锁定,而不将会话数据刷新到会话存储机制,而session_write_close()
则写回当前会话内容,然后关闭/释放锁定。
编辑:调用session_abort()
或session_write_close()
将使php处理请求2,即使请求1未完成处理也是如此。
session_abort()可以在不保存数据的情况下结束会话。因此,会话数据中的原始值将被保留。
session_destroy()会销毁与当前会话关联的所有数据。它不会取消设置与会话相关的任何全局变量,也不会取消会话cookie。要再次使用会话变量,必须调用session_start()。
参考资料:
session_abort() 结束会话而不保存数据。因此,会话数据中的原始值被保留。
- semihcosu