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;
      }
   }
?>