SplObjectStorage::getHash

(PHP 5 >= 5.4.0, PHP 7)
Calculate a unique identifier for the contained objects
public string SplObjectStorage::getHash ( object $object )

This method calculates an identifier for the objects added to an SplObjectStorage object.

The implementation in SplObjectStorage returns the same value as spl_object_hash().

The storage object will never contain more than one object with the same identifier. As such, it can be used to implement a set (a collection of unique values) where the quality of an object being unique is determined by the value returned by this function being unique.

Parameters:
object

The object whose identifier is to be calculated.

Returns:

A string with the calculated identifier.

Exception:

A RuntimeException is thrown when the returned value is not a string.

Examples:
SplObjectStorage::getHash() example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
class OneSpecimenPerClassStorage extends SplObjectStorage {
    public function getHash($o) {
        return get_class($o);
    }
}
class A {}
 
$s new OneSpecimenPerClassStorage;
$o1 new stdClass;
$o2 new stdClass;
$o3 new A;
 
$s[$o1] = 1;
//$o2 is considered equal to $o1 so the value is replaced
$s[$o2] = 2;
$s[$o3] = 3;
 
//these are considered equal to the objects before
//so they can be used to access the values stored under them
$p1 new stdClass;
$p2 new A;
echo $s[$p1], "\n";
echo $s[$p2], "\n";
?>

The above example will output something similar to:

2
3
See also:

spl_object_hash() -

doc_php
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.