如果PHP是无状态的,那么即使您将变量声明为静态,它们也不会在不同的运行中保留它们的值。因此,尝试使用如下所示的类来监视会话是没有意义的,因为会话在运行期间保持状态,但PHP用户代码不会。
class session
{
protected static $ses_id ="";
public static function start()
{
self::$ses_id = session_start();
}
public static function is_start()
{
return self::$ses_id;
}
public static function finish()
{
self::$ses_id = 0;
$_SESSION=array();
if (session_id() != "" || isset($_COOKIE[session_name()]))
{
setcookie(session_name(), '', time()-2592000, '/');
}
session_destroy();
}
}
答案 0 :(得分:2)
您编写的课程不会添加任何新功能,它只包含现有功能(由session_*
功能提供)。如果您需要调解或控制对会话的访问权限,这种事情是值得的。只有你可以在你自己的应用程序中判断它是否值得。
答案 1 :(得分:2)
session_start()创建会话或恢复当前会话 通过GET或POST请求传递的会话标识符,或通过 饼干
这意味着您可以恢复会话,$ses_id
将保持不变,会话有效,如果尚未销毁。
将它包装在类中可以是封装会话功能并以OOP方式访问它的好方法。您还可以扩展该类,以便轻松地保存相关会话数据,然后以比使用提供的session_ *函数更合理的方式在整个应用程序中访问这些数据。