PHP - Fonction Ds \ Hashable :: hash ()

La fonction Ds \ Hashable :: hash () peut retourner une valeur scalaire à utiliser comme valeur de hachage.

Syntaxe

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

La fonction Ds \ Hashable :: hash () peut retourner une valeur scalaire à utiliser comme valeur de hachage des objets.

Tandis que la valeur de hachage ne définit pas l'égalité, tous les objets qui sont égaux selon la fonction Ds \ Hashable :: equals () doivent avoir la même valeur de hachage. Les valeurs de hachage d'objets égaux ne doivent pas nécessairement être uniques. Par exemple, nous pouvons simplement retourner true pour tous les objets et rien ne peut casser. La seule implication est que les tables de hachage se transforment ensuite en listes liées car tous nos objets peuvent être hachés dans le même compartiment. Par conséquent, il est très important que nous puissions choisir une bonne valeur de hachage telle que l'identifiant ou l'adresse e-mail.

La fonction Ds \ Hashable :: hash () peut permettre aux objets d'être utilisés comme clés dans des structures telles que Ds \ Map et Ds \ Set, ou toute autre structure de recherche qui honore cette interface.

Exemple

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