SplObjectStorage::getHash
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SplObjectStorage::getHash — Calcula um identificador único para os objetos contidos
Descrição
Este método calcula um identificador para os objetos adicionados a um objeto SplObjectStorage.
A implementação em SplObjectStorage retorna o mesmo valor que spl_object_hash().
O objeto de armazenamento nunca conterá mais de um objeto com o mesmo identificador. Portanto, pode ser usado para implementar um conjunto (um armazenamento de valores únicos) onde a qualidade de um objeto ser único é determinada pelo fato do valor retornado por esta função ser único.
Parâmetros
object
-
O objeto cujo identificador será calculado.
Valor Retornado
Uma string com o identificador calculado.
Erros/Exceções
Uma RuntimeException é lançada quando o valor retornado não é uma string.
Exemplos
Example #1 Exemplo de 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 é considerado igual a $o1, então o valor é substituído
$s[$o2] = 2;
$s[$o3] = 3;
// esses são considerados iguais aos objetos anteriores
// então eles podem ser usados para acessar os valores armazenados sob eles
$p1 = new stdClass;
$p2 = new A;
echo $s[$p1], "\n";
echo $s[$p2], "\n";
?>
O exemplo acima produzirá algo semelhante a:
2 3