如何检查 PHP 会话是否已启动?

phpprogrammingserver side programming

在 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 版本或更高版本中运行。


相关文章