PHP Sessions的内部机制
发布时间:2020-12-13 17:42:03 所属栏目:PHP教程 来源:网络整理
导读:从手册中,我得出当设置php会话var时,它被写入session_save_path文件夹中的文本文件. 我很好奇,一旦解释器使用会话变量命中行,或者当PHP解释器退出处理文件时,它是否发生(写入文本文件),是否会发生这种情况? 例如,如果我要在两个连续的行中设置和更新会话变
从手册中,我得出当设置php会话var时,它被写入session_save_path文件夹中的文本文件.
我很好奇,一旦解释器使用会话变量命中行,或者当PHP解释器退出处理文件时,它是否发生(写入文本文件),是否会发生这种情况? 例如,如果我要在两个连续的行中设置和更新会话变量(如下面的示例所示),那么PHP解释器是否会将文件背靠背保存两次? 换句话说,哪些代码片段有正确的评论? $_SESSION['my_variable']=1; // writes to the session text file $_SESSION['my_variable']=2; // writes to the session text file again die(); // versus $_SESSION['my_variable']=1; // updates the session file contents in the memory $_SESSION['my_variable']=2; // updates the session file contents in the memory die(); // writes to the session text file 解决方法
在以下情况下将数据写入文件:
>调用session_write_close() 所以假设你不做1),你的第二个假设是正确的. 每次变量更改时写入文件都非常昂贵,因为一般来说访问和写入磁盘很慢,因此PHP不会这样做.但应该注意的是,诸如memcache或redis之类的缓存系统会在发生变化时存储变化,因此当PHP会话在可靠性方面不够时,依赖它们是一个好主意. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |