我继承了以下有趣的代码.逻辑似乎是多余的或者是对错的.
// make the use of sessions possible.
if (!session_id()) {
session_start();
}
Run Code Online (Sandbox Code Playgroud)
但是,它是在大规模用户系统上,我不愿意改变它.虽然有经验的PHP,但我会很感激社区的投入,以确保我不会错过任何东西.
如果您可以提及当前代码的副作用或洞察力,则可获得奖励积分.
也许逻辑不是正确的词.为什么session_id()
在调用之前检查session_start()
,何时它总是返回空字符串,因为没有session_start()
调用代码中的其他位置.
望着PHP.net:
http://php.net/manual/en/function.session-id.php
session_id() 返回当前会话的会话 ID,如果没有当前会话(不存在当前会话 ID),则返回空字符串 ("")。
如果您要在不进行太多更改的情况下更新代码,最好这样编写:
if (session_id() === "") {
session_start();
}
Run Code Online (Sandbox Code Playgroud)
检查会话是否真的开始了。如果对 php.net 文档进行评论和引用,则可以更清楚地了解开发人员正在尝试完成的工作。
请注意,同时:
$test = ""
!$test // This returns true
Run Code Online (Sandbox Code Playgroud)
它不是那么清楚。