Вычисляет уникальный идентификатор для объектов контейнера

# SplObjectStorage::getHash

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplObjectStorage::getHash — Вычисляет уникальный идентификатор для объектов контейнера

### Описание

public function SplObjectStorage::getHash(object `$object`): string

Метод вычисляет уникальный идентификатор для объектов, добавляемых в контейнер SplObjectStorage.

Реализация SplObjectStorage возвращает то же значение, что и функция spl_object_hash().

В одном контейнере никогда не появится двух объектов с одинаковыми идентификаторами. Таким образом, с помощью контейнера можно реализовать множество (коллекцию значений, каждое из которых представлено в единственном экземпляре), в котором уникальность объектов будет определяться этим идентификатором.

### Список параметров

`object`

  Объект, чей идентификатор требуется вычислить.

### Возвращаемые значения

Строка string с результатом вычисления.

### Ошибки

Метод выбрасывает исключение RuntimeException, когда тип возвращаемого значения не является строкой (string).

### Примеры

Пример #1 Пример использования SplObjectStorage::getHash()

    <?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 предполагается равным $o1, соответственно значение замещается
    $s[$o2] = 2;
    $s[$o3] = 3;

    //предполагаем, что следующие объекты эквивалентны приведённым выше
    //таким образом, их можно использовать для извлечения данных из контейнера
    $p1 = new stdClass;
    $p2 = new A;
    echo $s[$p1], "\n";
    echo $s[$p2], "\n";
    ?>

Вывод приведённого примера будет похож на:

    2
    3

### Смотрите также

- spl_object_hash() - Возвращает хеш-идентификатор объекта

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open