不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2020-07-16 11:24  分类:PHP基础  编辑

PHP 5.4 及以上可以用 session_status() 的返回值来判断,PHP 5.4 以下用 session_id() 是否有值来判断,当然,PHP 5.4 也可以用这种方法判断,参考代码如下:

/**
 * 会话是否已开启
 * 
 * @return bool
 */
function session_is_started() {
    if (php_sapi_name() !== 'cli') {
        if (version_compare(phpversion(), '5.4.0', '>=')) {
            return session_status() === PHP_SESSION_ACTIVE ? true : false;
        } else {
            return session_id() === '' ? false : true;
        }
    }
    
    return false;
}

示例:

// 开启Session
if (session_is_started() === false) {
    session_start();
}

 


官方 session_status() 返回值为

  • PHP_SESSION_DISABLED:会话是被禁用的。
  • PHP_SESSION_NONE:会话是启用的,但不存在当前会话。
  • PHP_SESSION_ACTIVE:会话是启用的,而且存在当前会话。

 

  • 0 ----> PHP_SESSION_DISABLED if sessions are disabled.
  • 1 ----> PHP_SESSION_NONE if sessions are enabled, but none exists.
  • 2 ----> PHP_SESSION_ACTIVE if sessions are enabled, and one exists.