当前位置: 首页> 最新文章列表> 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需使用方法一。