【发布时间】:2012-03-26 05:14:26
【问题描述】:
假设我有一个对象——在这种情况下是一个用户对象——我希望能够使用一个单独的类来跟踪更改。 User 对象不应该以任何方式改变它的行为来发生这种情况。
因此,我的单独类创建了它的“干净”副本,将其存储在本地某个位置,然后可以将 User 对象与原始版本进行比较,以查看在其生命周期内是否有任何变化。
是否有函数、模式或任何东西可以快速比较用户对象的两个版本?
选项 1 也许我可以将每个版本序列化,然后直接比较,或者将它们散列并比较?
选项 2 也许我应该简单地创建一个 ReflectionClass,遍历该类的每个属性,看看这两个版本是否具有相同的属性值?
选项 3
也许有一个简单的原生函数,比如objects_are_equal($object1,$object2);?
最快的方法是什么?
【问题讨论】:
-
嗯,我知道我可以序列化这两个对象,并比较哈希值或其他东西....这不是我是否可以,而是我如何快速做到这一点?我会调整问题以反映这种精神......