SplObjectStorage::getHash

(PHP 5 >= 5.4.0, PHP 7)

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

Описание

public 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 
{}

$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() - Возвращает хеш-идентификатор для объекта