在PHP中,我们使用内置函数session_start()来启动会话。但是如果在同一个脚本中重复调用该函数,会导致错误。因此,在执行session_start()前,最好先检查会话是否已启动。
对于较早版本的PHP,可以通过检查session_id()是否为空来判断会话是否已启动。
<?php if(session_id() == ''){ session_start(); } ?>
如果会话未启动,上述代码会启动会话,确保session_start()不会重复调用。
从PHP 5.4.0开始,可以使用session_status()函数获取当前会话状态。该函数返回以下三种状态常量:
<?php if(session_status() == PHP_SESSION_NONE) { session_start(); } ?>
代码通过判断session_status()是否为PHP_SESSION_NONE,在会话未启动时启动会话,从而避免重复调用session_start()导致的错误。
方法二使用的session_status()函数仅适用于PHP 5.4.0及更高版本,低版本PHP需使用方法一。