Hashable é uma interface que permite que objetos sejam usados como chaves. É uma alternativa à função spl_object_hash () que determina o hash de um objeto com base em seu identificador: isso significa que dois objetos considerados iguais por uma definição implícita não podem ser tratados como iguais porque não são a mesma instância.
A função hash () pode ser usada para retornar um valor escalar a ser usado como o valor hash de um objeto que determina onde ele vai na tabela hash. Embora esse valor não precise ser exclusivo, os objetos iguais devem ter o mesmo valor de hash.
A função equals () pode ser usada para determinar se dois objetos são iguais. É garantido que o objeto de comparação pode ser uma instância da mesma classe que o sujeito.
Sinopse da interface
Ds\Hashable {
/* Methods */
abstract public bool equals( object $obj )
abstract public mixed hash( void )
}