代码之家  ›  专栏  ›  技术社区  ›  T.Todua Laurent W.

$\u SESSION variables-SESSION\u start()是否有任何影响?

  •  1
  • T.Todua Laurent W.  · 技术社区  · 7 年前

    有些情况下,某些函数会使用 session_start() 早期(主要是CMS平台中的插件)。

    我有一个问题-会话的开始是否会对整个应用程序/CMS产生负面影响?

    我这样问是因为我记得调用类似的函数 ob_start() , ob_end() 或等等……)我想知道这是否适用于 session 如果它们在全球范围内有任何负面影响,也会产生负面影响。(我对负面影响最感兴趣)。

    1 回复  |  直到 7 年前
        1
  •  1
  •   M. Eriksson    7 年前

    没有 session_start() ,除非您的系统设置为自动启动会话,否则请求完成后,对任何会话的任何更改都将丢失。不启动就使用会话将是毫无意义的。

    重要的部分是在调用之前检查会话是否已经启动 会话\u开始() . 如果已经启动,您会收到警告,说“会话已经启动”。
    一种方法是使用 session_status() 这样地:

    if (session_status() === PHP_SESSION_NONE) {
        // Session isn't started, let's start it.
        session_start();
    }
    

    启动会话并不会带来任何负面影响,除非一些库/扩展以非常非正统的方式使用会话(但这可以说是任何事情的结果)。