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