可以使用php';s垃圾回收删除启动脚本的会话
假设我的php.ini文件中有这些设置(当然不是“正常”设置): 这意味着在每次会话初始化中,垃圾收集都将运行并清理所有早于一分钟的会话 假设只有一个用户连接到服务器并运行一个初始化会话的脚本。如果他/她在70秒后再次运行它(或者无论如何超过60秒),他/她自己的会话会被删除吗可以使用php';s垃圾回收删除启动脚本的会话,php,session,Php,Session,假设我的php.ini文件中有这些设置(当然不是“正常”设置): 这意味着在每次会话初始化中,垃圾收集都将运行并清理所有早于一分钟的会话 假设只有一个用户连接到服务器并运行一个初始化会话的脚本。如果他/她在70秒后再次运行它(或者无论如何超过60秒),他/她自己的会话会被删除吗 换句话说,垃圾收集是在脚本执行之前还是之后进行的?垃圾收集应该在脚本运行之前进行。这是正确的行为。我的意思是,会话应该在gc\u maxlifetime之后的任何时刻过期。PHP应该在运行脚本之前进行垃圾收集,以确保其正
换句话说,垃圾收集是在脚本执行之前还是之后进行的?垃圾收集应该在脚本运行之前进行。这是正确的行为。我的意思是,会话应该在
gc\u maxlifetime
之后的任何时刻过期。PHP应该在运行脚本之前进行垃圾收集,以确保其正常工作
然而,我很好奇,尝试了一下,我的测试证实了我的假设
这是一个简单的测试。在给定的设置中,我测试了会话中存储的变量在X秒后是否存在,而不是。因此,垃圾收集是在运行脚本之前完成的
注意:如果使用cookie,还必须将会话cookie生存期设置为过期。内置会话GC在会话初始化()期间启动,即通过
会话启动()函数启动。当session.autostart
为true时,将在第一行代码之前执行session\u start()
。无论何时发生,如果会话未过期,它将不会被垃圾收集。会话超时是完全不同的设置。
session.gc_maxlifetime = 60
session.gc_probability = 1
session.gc_divisor = 1