我想知道这个if语句:
if(session_id()===""){}
等同于这个if语句:
if(!session_id()){}
两者都适合我!
但是我喜欢分拣线,所以我只是想知道它是否100%等效,我可以依靠它来检测会话是否已经启动。
答案 0 :(得分: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存在)。
所以,最好是使用第一种方式。