假设我正在从数据库加载大量对象。这些是普通的普通PHP对象,没有任何花哨的继承。假设我可能会更改其中一些对象并希望将它们写回数据库,但只使用UPDATE ... SET ...查询中实际不同的字段。还假设我事先不知道哪些对象将被更改。
我认为我需要复制所有加载的对象,并保留以供参考和比较,我是否需要将对象写回数据库。
我看到两种可能的方法:
在效率方面(主要是记忆,但速度也是一个考虑因素),这将是有利的吗?
答案 0 :(得分:1)
如果对象的状态发生了变化,你实际上需要比较一些东西。如果您甚至不想跟踪哪个对象已更改,而且还想跟踪哪个成员,则需要为每个成员设置一个状态。
由于您不想扩展原始对象(例如,它们可能有一个标记,它们在更改时无效),您需要从外部跟踪状态。我会说序列化可能是最好的选择。克隆会占用更多内存。