grifart / equalable-utils
提供通用的equals()函数。
v1.0.3
2019-05-30 17:52 UTC
Requires
- php: >= 7.1.0
- grifart/comparable-polyfill: ^1.0.0
- php-ds/php-ds: ^1.1
Requires (Dev)
- nette/tester: ^2.0.0
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()
方法的行为相同。