grifart/equalable-utils

提供通用的equals()函数。

v1.0.3 2019-05-30 17:52 UTC

This package is auto-updated.

Last update: 2024-09-17 07:06:38 UTC


README

对象是否相等?PHP仅通过===运算符定义实例相等性。然后是按值比较的==,它比较对象值,但用户代码不能修改它们的比较方式。

这就是为什么Java中存在通用的equals()方法。PHP缺少类似的东西。

因此,我实现了全局的equals()函数,它提供了对象的逻辑等价性。哪些对象相等以及哪些不相等可以通过一些东西来修改——见下文。

安装

composer require grifart/equalable-utils

实现逻辑等价性

实现逻辑等价性的方法有几种。

\Ds\Hashable(来自PHP DS扩展)

Hashable是PHP对Java equals()hashCode()方法的克隆。如果您想在集合中使用实现的对象,这将最有意义。

\Comparable接口建议

这个库支持\Comparable接口并尝试比较对象。

只需实现equals($other),is($other)或isEqualTo($other)方法

这些方法必须与Java equals()方法的行为相同。