会话到期时对象是否会被销毁?

时间:2015-05-03 08:49:39

标签: php session-variables session-timeout

在我的PHP应用程序中,我定义了一个User_class(包含一些属性和一些方法,包括Stack cells = m in_quotes = false foreach character in string: if character != ',' && character != '"': cells.Top = cells.Top + character else if character == ',' && in_quotes: cells.Top = cells.Top + character else if character == ',': cells.push("") else if character == '"' && in_quotes: in_quotes = false else if character == '"': in_quotes = true __construct())。我已经从这个类中实例化了一个对象,并且为了使用它的凭证,我使用serialize方法将此对象存储在__destruct() super global中。 $_SESSION方法运行一些私有方法,包括log_out。 我的问题是,会话到期会破坏对象吗?

1 个答案:

答案 0 :(得分:1)

答案清楚:不,它没有。

对象作为String存储在会话中,表示所有属性的当前值,但不是(!)任何方法,con或析构函数。

当会话过期且垃圾收集处于活动状态时,会话存储中的其余会话才会被删除。

为了在会话过期后明确记录用户,您需要注册自己的会话处理程序。

BTW:为了在$_SESSION var中存储一个对象,没有必要明确地序列化它。仅$_SESSION['obj'] = $myObj;就足够了 - 并且极大地加速了事情。