當前位置: 首頁> 最新文章列表> PHP會話檢查指南:如何判斷會話是否已啟動

PHP會話檢查指南:如何判斷會話是否已啟動

M66 2025-09-19

在PHP中檢查會話是否已經啟動

在PHP中,我們使用內置函數session_start()來啟動會話。但是如果在同一個腳本中重複調用該函數,會導致錯誤。因此,在執行session_start()前,最好先檢查會話是否已啟動。

方法一:適用於PHP 5.4.0以下版本

對於較早版本的PHP,可以通過檢查session_id()是否為空來判斷會話是否已啟動。

<?php
if(session_id() == ''){
    session_start();
}
?>

解釋

如果會話未啟動,上述代碼會啟動會話,確保session_start()不會重複調用。

方法二:適用於PHP 5.4.0及以上版本

從PHP 5.4.0開始,可以使用session_status()函數獲取當前會話狀態。該函數返回以下三種狀態常量:

  • PHP_SESSION_DISABLED:會話已禁用
  • PHP_SESSION_NONE:會話已啟用,但尚未啟動
  • PHP_SESSION_ACTIVE:會話已啟用並已啟動
<?php
if(session_status() == PHP_SESSION_NONE) {
    session_start();
}
?>

解釋

代碼通過判斷session_status()是否為PHP_SESSION_NONE ,在會話未啟動時啟動會話,從而避免重複調用session_start()導致的錯誤。

注意事項

方法二使用的session_status()函數僅適用於PHP 5.4.0及更高版本,低版本PHP需使用方法一。