在我的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。
我的问题是,会话到期会破坏对象吗?
答案 0 :(得分:1)
答案清楚:不,它没有。
对象作为String存储在会话中,表示所有属性的当前值,但不是(!)任何方法,con或析构函数。
当会话过期且垃圾收集处于活动状态时,会话存储中的其余会话才会被删除。
为了在会话过期后明确记录用户,您需要注册自己的会话处理程序。
BTW:为了在$_SESSION
var中存储一个对象,没有必要明确地序列化它。仅$_SESSION['obj'] = $myObj;
就足够了 - 并且极大地加速了事情。