如何检查 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 版本或更高版本中运行。