使用PHP维护具有不同页面的对象状态

时间:2009-06-21 05:36:40

标签: php oop

如何使用PHP OOP来维护对象状态 不同的页面。

问题是我总是在每个页面上实例化对象。

有一个解决方案,我实例化它一次并保持它 不同页面上的对象。

提前致谢

2 个答案:

答案 0 :(得分:9)

在PHP中,几乎所有内容都在每个页面上实例化。如果你想维持状态,你有很多选择:

  1. 对于特定于用户的数据,您可以将其放入Cookie中(出于安全原因不推荐);
  2. 将特定于用户的数据放入会话中,这基本上意味着将其写入文件并在每次点击时从文件加载;
  3. 将其存储在某种形式的持久存储中,例如文件或数据库表;
  4. 将其存储在某种缓存中(例如memcached)。
  5. 您使用哪一个取决于诸如数据是全局的,用户特定的等因素以及许多其他因素(例如读取频率,写入频率等)。

    所以不可能给你一个明确的答案,因为你想要坚持的性质尚不清楚。如果您担心创建对象的成本,那么,除非真的昂贵,否则不要。在发生问题之前,请不要优化问题。

答案 1 :(得分:2)

您还可以查看对象序列化。您可以在此处找到更多信息。 http://uk.php.net/serialize。这会将您的对象转换为可用于存储到会话数据的格式。一旦您的数据存储在会话中,您就可以在下一个用户页面加载时读取数据并反序列化数据以获取对象!

这是一篇很好的文章,展示了序列化如何允许您的对象跨两个不同的PHP页面使用。 http://www.phpbuilder.com/manual/en/language.oop.serialization.php

相关问题