PHP Session与Class

时间:2012-02-07 19:35:57

标签: php class session

我有一个登录页面。用户可以登录他们的帐户并获取他们的详细信息。但是我很困惑,我应该将用户详细信息存储在会话变量中,还是应该只将ID作为会话变量传递,并在下一页中使用ID检索类的所有详细信息。

如果我只将ID作为会话变量传递,那么我必须在每个页面中调用该类。请给我正确的想法,我不想反复调用该类,页面应该加载更快。

提前致谢。

2 个答案:

答案 0 :(得分:2)

长期以来,在性能方面无关紧要。你可以选择任何方法。

根据我的经验,将ID存储在会话中,并在用户类中需要时检索用户数据是更常见的方法。

也可以在会话中以序列化形式存储包含用户数据的对象,但

  • 它会耗费大量内存(因为会话数据会在每次请求时加载到PHP脚本中)

  • 您不能依赖新鲜的数据(如果用户更改了他们的偏好,或者其他什么事情发生了怎么办?)

答案 1 :(得分:0)

我认为你应该只在会话变量中存储会话ID。如果您在会话中存储有关用户的一些信息,那么您将不会获得任何性能优势,因为您永远不会在以后需要什么样的附加信息,序列化 - 反序列化也需要一些时间(特别是在数据库中存储会话时!)。 / p>

例如,我总是在每个请求中加载来自db的用户数据,因为我必须检查用户有几个原因:他/她是否被锁定,他/她是否被禁用,他/她的首选语言是什么,何时是他/她在上次等等。