PHP ::检测会话是否启动的最佳方法

Hez*_*ina 5 php session if-statement

我想知道这个if语句是否:

if(session_id()===""){}
Run Code Online (Sandbox Code Playgroud)

相当于这个if语句:

if(!session_id()){}
Run Code Online (Sandbox Code Playgroud)

两者都适合我!

但我喜欢分拣线,所以我只是想知道它是否100%等效,我可以依靠它来检测会话是否已经启动.

Krz*_*zos 7

这些陈述并不完全等同.

if(!session_id()){}是指if(session_id() != TRUE){}这样的session_id()功能可以恢复0,FALSE,'',NULL.

并且if(session_id()===""){}正在检查是否session_id()返回空的STRING,因此该if语句将返回TRUE 的唯一选项是''.

从PHP手册关于session_id():

session_id()返回当前会话的会话ID或空字符串(""),如果没有当前会话(不存在当前会话ID).

所以,最好是使用第一种方式.