$ _SESSION变量 - session_start()有什么影响吗?

时间:2017-12-23 18:40:44

标签: php session-variables

有些情况下,某些功能会尽早使用this(主要是CMS平台中的插件)。

我有一个问题 - 会话的开始是否可能会影响整个应用程序/ CMS中的某些内容?

我问这个因为我记得调用类似的函数(比如session_start()ob_start()等等。)MATTERS,我想知道同样适用于ob_end()函数,如果他们在全球范围内有任何负面影响。 (我只对负面影响感兴趣)。

1 个答案:

答案 0 :(得分:1)

如果没有session_start(),任何会话的任何更改都将在请求完成时丢失,除非您的系统设置为自动启动会话。在没有启动的情况下使用会话只会毫无意义。

重要的是在调用session_start()之前检查会话是否已经启动。如果它已经启动,您会收到警告说"会话已经开始"。
一种方法是使用session_status()这样:

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

启动会话确实没有任何负面影响,除非某些图书馆/扩展程序以某种非常规的方式使用会话(但这可以说是真的)。​​