这来自official php manual :
session_start() creates a session or resumes the current one based on a session identifier passed via a GET or POST request, or passed via a cookie.
我在我读过的所有 php 编程书籍中都看到了这样的代码:
<?php
session_start();
?>
但我在这里看到一些帖子,其中开发人员正在检查 session 是否已启动。
if (session_id() == '') {
session_start();
}
手册似乎建议 session_start()
为您进行检查,如果它没有启动,那么它会自行启动。
那么,谁是正确的呢?
最佳答案
这是因为您不能在同一脚本上多次调用 sesseion_start()
。
假设我们有一个脚本 index.php
,它包含另一个脚本 frontController.php
并且都有一个 session 启动
如果您不验证并尝试启动另一个 session ,PHP 将抛出如下通知:
session 已经启动 - 忽略 frontController.php:80 中的 session_start()
关于php - 为什么要测试 session 是否已启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51601677/