Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
session_start();我在我的网站上有很多出现。由于包含的某些文件也使用 AJAX 调用,因此在这种情况下需要启动会话。
session_start();
当我编写该站点时,我并不关心启动它不止一次,因为我知道我的服务器在会话已经启动时只是忽略了它。
这样做有什么问题吗?我是否应该在再次调用之前预先检查会话是否已启动?
这样做有什么问题吗?
它将导致 E_NOTICE,但除此之外,第二次(以及第三次、第四次……)调用session_start无效。
session_start
但是,如果您“不知道”是否已经开始会话,我个人认为这是一种代码味道。如果可能,请尝试设计代码,以便清楚地知道会话是否已经开始。
此外,正如詹姆斯在手册中的评论中指出的那样:
为避免 PHP 从 4.3.3 开始两次启动会话时提交的通知,请先检查session_id(): if (session_id() == "") session_start();
为避免 PHP 从 4.3.3 开始两次启动会话时提交的通知,请先检查session_id():
session_id()
if (session_id() == "") session_start();