PHP - Funzione Ds \ Hashable :: hash ()
La funzione Ds \ Hashable :: hash () può restituire un valore scalare da utilizzare come valore hash.
Sintassi
public abstract mixed Ds\Hashable::hash( void )
La funzione Ds \ Hashable :: hash () può restituire un valore scalare da utilizzare come valore hash degli oggetti.
Anche se il valore hash non definisce l'uguaglianza, tutti gli oggetti uguali secondo la funzione Ds \ Hashable :: equals () devono avere lo stesso valore hash. I valori hash di oggetti uguali non devono essere univoci. Ad esempio, possiamo semplicemente restituire true per tutti gli oggetti e nulla può rompersi. L'unica implicazione è che le tabelle hash si trasformano in elenchi collegati perché tutti i nostri oggetti possono essere sottoposti ad hashing nello stesso bucket. Pertanto, è molto importante che possiamo scegliere un buon valore hash come ID o indirizzo e-mail.
La funzione Ds \ Hashable :: hash () può consentire l'utilizzo di oggetti come chiavi in strutture come Ds \ Map e Ds \ Set, o qualsiasi altra struttura di ricerca che rispetti questa interfaccia.
Esempio
<?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;
}
}
?>