Ds\Hashable::hash

(PECL ds >= 1.0.0)

Ds\Hashable::hashReturns a scalar value to be used as a hash value

Beschreibung

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

Returns a scalar value to be used as the hash value of the objects.

While the hash value does not define equality, all objects that are equal according to Ds\Hashable::equals() must have the same hash value. Hash values of equal objects don't have to be unique, for example you could just return true for all objects and nothing would break - the only implication would be that hash tables then turn into linked lists because all your objects will be hashed to the same bucket. It's therefore very important that you pick a good hash value, such as an ID or email address.

This method allows objects to be used as keys in structures such as Ds\Map and Ds\Set, or any other lookup structure that honors this interface.

Achtung

Do not pick a value that might change within the object, such as a public property. Hash table lookups would fail because the hash has changed.

Achtung

All objects that are equal must have the same hash value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A scalar value to be used as this object's hash value.

Beispiele

Beispiel #1 Ds\Hashable::hash() example

<?php
class HashableObject implements \Ds\Hashable
{
    private 
$name;
    private 
$email;

    public function 
__construct($name$email)
    {
        
$this->name  $name;
        
$this->email $email;
    }

    
/**
     * Should return the same value for all equal objects, but doesn't have to
     * be unique. This value will not be used to determine equality.
     */
    
public function hash()
    {
        return 
$this->email;
    }

    
/**
     * This determines equality, usually during a hash table lookup to determine
     * if the bucket's key matches the lookup key. The hash has to be equal if
     * the objects are equal, otherwise this determination wouldn't be reached.
     */
    
public function equals($obj): bool
    
{
        return 
$this->name  === $obj->name
            
&& $this->email === $obj->email;
    }
}
?>

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

Was genau bedeutet "Vibe Coding"? Ein tiefgehender Blick für Entwickler

In der Welt der Softwareentwicklung gibt es unzählige Wege, wie man an ein Projekt herangeht. Manche schwören auf strikte Planung, andere auf bewährte Algorithmen und wieder andere lassen sich von etwas ganz anderem leiten: ihrem Gefühl. ...

admin

Autor : admin
Kategorie: Software & Web-Development

PHP cURL-Tutorial: Verwendung von cURL zum Durchführen von HTTP-Anfragen

cURL ist eine leistungsstarke PHP-Erweiterung, die es Ihnen ermöglicht, mit verschiedenen Servern über verschiedene Protokolle wie HTTP, HTTPS, FTP und mehr zu kommunizieren. ...

TheMax

Autor : TheMax
Kategorie: PHP-Tutorials

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

Wie finde ich Vertrauen ins Leben? – 500 Worte über Mut, Hingabe und Zuversicht

Worth reading. Thank you for sharing this guide. I'll share it in the blog portion of my client site essutumishi-tz.co (http://essutumishi-tz.co/)​.

Geschrieben von mohrceleste am 28.04.2025 10:40:19
Forum: Off-Topic Diskussionen
Berechnungen durchführen

Great discussion on calculations! As for the Wind Breaker' season 2 (https://gogoanime.by/series/wind-breaker-season-2/) I love how the subbed ver ...

Geschrieben von kamuar789 am 27.04.2025 21:19:26
Forum: PHP Developer Forum
Malaysia tour package

For anyone looking to experience the desert like never before, an overnight desert safari is a journey you won’t want to miss. Imagine camping u ...

Geschrieben von rogerwarner219 am 27.04.2025 20:48:59
Forum: Off-Topic Diskussionen
SEO-Optimierung: Der Schlüssel zu langfristigem Online-Erfolg

In einer digitalen Welt, in der täglich tausende neue Webseiten online gehen, wird die Auffindbarkeit im Internet zu einem der wichtigsten Erfolg ...

Geschrieben von Codini am 27.04.2025 12:58:26
Forum: Off-Topic Diskussionen