Función PHP - Ds \ Hashable :: hash ()

La función Ds \ Hashable :: hash () puede devolver un valor escalar que se utilizará como valor hash.

Sintaxis

public abstract mixed Ds\Hashable::hash( void )

La función Ds \ Hashable :: hash () puede devolver un valor escalar que se utilizará como valor hash de los objetos.

Si bien el valor hash no define la igualdad, todos los objetos que son iguales según la función Ds \ Hashable :: equals () deben tener el mismo valor hash. Los valores hash de objetos iguales no tienen por qué ser únicos. Por ejemplo, podemos devolver verdadero para todos los objetos y nada puede romperse. La única implicación es que las tablas hash luego se convierten en listas vinculadas porque todos nuestros objetos pueden ser hash en el mismo depósito. Por lo tanto, es muy importante que podamos elegir un buen valor de hash, como ID o dirección de correo electrónico.

La función Ds \ Hashable :: hash () puede permitir que los objetos se utilicen como claves en estructuras como Ds \ Map y Ds \ Set, o cualquier otra estructura de búsqueda que respete esta interfaz.

Ejemplo

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