在PHP中,我們使用內置函數session_start()來啟動會話。但是如果在同一個腳本中重複調用該函數,會導致錯誤。因此,在執行session_start()前,最好先檢查會話是否已啟動。
對於較早版本的PHP,可以通過檢查session_id()是否為空來判斷會話是否已啟動。
<?php if(session_id() == ''){ session_start(); } ?>
如果會話未啟動,上述代碼會啟動會話,確保session_start()不會重複調用。
從PHP 5.4.0開始,可以使用session_status()函數獲取當前會話狀態。該函數返回以下三種狀態常量:
<?php if(session_status() == PHP_SESSION_NONE) { session_start(); } ?>
代碼通過判斷session_status()是否為PHP_SESSION_NONE ,在會話未啟動時啟動會話,從而避免重複調用session_start()導致的錯誤。
方法二使用的session_status()函數僅適用於PHP 5.4.0及更高版本,低版本PHP需使用方法一。