(PECL ds >= 1.0.0)
Hashable - это интерфейс, который позволяет использовать объекты в качестве ключей. Это альтернатива функции spl_object_hash(), которая вычисляет хеш объекта в соответствии с его обработчиком: это значит, что два объекта могут быть одинаковы по своему состоянию, но не считаются одинаковыми из-за того, что являются разными экземплярами одного класса.
Функция hash() используется для вычисления скалярного значения, характеризующего хеш объекта и определяющего его положение в хеш-таблице. Хотя это значение необязательно должно быть уникальным, одинаковые объекты должны иметь одно и то же значение хеша.
Функция equals() используется для определения идентичности двух объектов. Она гарантирует, что два объекта являются одним и тем же экземпляром класса.