如何檢查PHP會話是否已啟動?


在PHP中,我們使用內建函式`session_start()`來啟動會話。但我們在PHP指令碼中遇到的問題是,如果我們多次執行它,就會報錯。因此,我們將學習如何在不兩次呼叫`session_start()`函式的情況下檢查會話是否已啟動。

解決此問題有兩種方法。

對於PHP 5.4.0之前的版本。

示例

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

解釋

如果會話未啟動,以上程式碼將始終在PHP指令碼中啟動會話。

在第二種方法中,我們可以使用函式`session_status()`,它返回當前會話的狀態。此函式可以返回三個整數值,它們都是預定義的常量。這些是

  • 0 – `PHP_SESSION_DISABLED`:會話當前已停用。
  • 1 – `PHP_SESSION_NONE`:會話已啟用,但尚未啟動任何會話。
  • 2 – `PHP_SESSION_ACTIVE`:會話已啟用,並且已啟動會話。

示例

<?php
   if (session_status() == PHP_SESSION_NONE) {
      session_start();
   }
?>

解釋

以上程式碼檢查會話是否已啟動,如果未啟動,則將在PHP指令碼中啟動會話。

注意

`session_status()`函式僅在PHP 5.4.0或更高版本中執行。

更新於:2020年6月29日

4K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告