(PECL ds >= 1.0.0)
Hashable é uma interface que permite que objetos sejam usados como chaves. É uma alternativa ao spl_object_hash(), que determina o hash de um objeto com base no seu identificador: isso significa que dois objetos considerados iguais por uma definição implícita não serão tratados como iguais porque não são a mesma instância.
hash() é usada para retornar um valor escalar a ser usado como o valor hash do objeto, o que determina onde ele vai na tabela de hash. Embora esse valor não precise ser único, objetos que são iguais devem ter o mesmo valor hash.
equals() é usada para determinar se dois objetos são iguais. É garantido que o objeto de comparação será uma instância da mesma classe que o objeto sujeito.