加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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会话在可靠性方面不够时,依赖它们是一个好主意.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读