1

session_start();我在我的网站上有很多出现。由于包含的某些文件也使用 AJAX 调用,因此在这种情况下需要启动会话。

当我编写该站点时,我并不关心启动它不止一次,因为我知道我的服务器在会话已经启动时只是忽略了它。

这样做有什么问题吗?我是否应该在再次调用之前预先检查会话是否已启动?

4

1 回答 1

1

这样做有什么问题吗?

它将导致 E_NOTICE,但除此之外,第二次(以及第三次、第四次……)调用session_start无效。

但是,如果您“不知道”是否已经开始会话,我个人认为这是一种代码味道。如果可能,请尝试设计代码,以便清楚地知道会话是否已经开始。

此外,正如詹姆斯在手册中的评论中指出的那样:

为避免 PHP 从 4.3.3 开始两次启动会话时提交的通知,请先检查session_id()

if (session_id() == "")
    session_start();
于 2012-07-05T07:00:44.997 回答