根據提供的數據確定會話的持續時間可能有點困難。讓我們深入研究細節來尋找答案。
在 PHP 中,會話由垃圾收集器 (GC) 管理。 session.gc_maxlifetime 參數指定自上次會話資料變更後將其標記為刪除之前的最長時間。但是,有一個問題:每次呼叫 session_start 時都不會呼叫 GC。
session.gc_probability 和 session.gc_divisor 參數決定在 session_start 呼叫期間觸發 GC 的機率。預設情況下,這些值分別為 1 和 100,這表示 GC 僅在大約 1% 的此類呼叫中運行。
事實上GC 並不始終調用意味著,即使會話的生命週期在技術上已過期(即會話資料在session.gc_maxlifetime 秒前更改) ,它仍然可以使用更長時間。
由於這種行為,通常建議實現自己的會話超時機制,而不是僅依賴 PHP 的 GC。這可以幫助確保會話在預定的時間內終止。
以上是PHP 會話實際上持續多久?的詳細內容。更多資訊請關注PHP中文網其他相關文章!