PHP - Função Ds \ Hashable :: hash ()
A função Ds \ Hashable :: hash () pode retornar um valor escalar a ser usado como o valor hash.
Sintaxe
public abstract mixed Ds\Hashable::hash( void )
A função Ds \ Hashable :: hash () pode retornar um valor escalar a ser usado como o valor hash de objetos.
Embora o valor de hash não defina igualdade, todos os objetos que são iguais de acordo com a função Ds \ Hashable :: equals () devem ter o mesmo valor de hash. Os valores hash de objetos iguais não precisam ser exclusivos. Por exemplo, podemos apenas retornar true para todos os objetos e nada pode quebrar. A única implicação é que as tabelas hash se transformam em listas vinculadas, porque todos os nossos objetos podem ser transferidos para o mesmo depósito. Portanto, é muito importante que possamos escolher um bom valor de hash, como ID ou endereço de e-mail.
A função Ds \ Hashable :: hash () pode permitir que objetos sejam usados como chaves em estruturas como Ds \ Map e Ds \ Set, ou qualquer outra estrutura de pesquisa que respeite esta interface.
Exemplo
<?php
class HashableObject implements \Ds\Hashable {
private $name;
private $email;
public function __construct($name, $email) {
$this->name = $name;
$this->email = $email;
}
public function hash() {
return $this->email;
}
public function equals($obj): bool {
return $this->name === $obj->name && $this->email === $obj->email;
}
}
?>