我有一个 PHP 文件,有时从已启动 session 的页面调用,有时从未启动 session 的页面调用。因此,当我在此脚本上有 session_start()
时,有时会收到“ session 已开始”的错误消息。为此,我写了以下几行:
if(!isset($_COOKIE["PHPSESSID"]))
{
session_start();
}
但这次我收到了这条警告信息:
Notice: Undefined variable: _SESSION
有没有更好的方法来检查 session 是否已经开始?
如果我使用 @session_start
会不会让事情正常工作而只是关闭警告?
最佳答案
PHP >= 5.4.0、PHP 7、PHP 8 版本的推荐方式
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
引用:http://www.php.net/manual/en/function.session-status.php
对于 PHP < 5.4.0
的版本if(session_id() == '') {
session_start();
}
关于php - 检查 PHP session 是否已经开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6249707/