PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

Ds\Hashable::hash - Returns a scalar value to be used as a hash value. | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

Ds\Hashable::hash

(PECL ds >= 1.0.0)

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

説明

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

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.

警告

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.

警告

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

パラメータ

この関数にはパラメータはありません。

返り値

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

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

忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「Ds\Hashable::hash - Returns a scalar value to be used as a hash value.」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | Ds\Hashable::hash - Returns a scalar value to be used as a hash value.」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: