我想知道 PHP 如何检测到特定会话已超时。
详细说明:我正在使用默认的(基于文件的)会话处理程序,具有默认的会话生命周期等。php.ini 中的所有内容都是默认设置。
如果现在开始会话,PHP 会检查(取决于非 session.gc_divisor 和 session.gc_probability)是否有任何超时会话。但是从哪里获取 PHP 的最后一个会话访问时间来检查会话呢?
会话文件本身仅包含工作负载,例如x|i:1;
a $_SESSION['x'] = 1;
,因此没有关于最后一次会话访问时间的信息。
我认为没有与会话开始时间相关的内存信息,因为在服务器完全重新启动后会话仍在工作。
那么,PHP 是从哪里获取信息的呢?它是在比较会话文件的 mtime/ctime 吗?