UniqueGenerator
in package
FinalYes
Обёртка, возвращающая только не встречавшиеся ранее значения.
Каждый вызов self::value() повторяет переданный генератор, пока не получит значение, ещё не отдававшееся этим экземпляром. Значения различаются по сериализации, поэтому уникальность работает и для массивов/объектов. При исчерпании попыток бросается OverflowException — защита от зацикливания.
Table of Contents
Constants
- DEFAULT_MAX_RETRIES : mixed = 10000
- Число попыток на один вызов по умолчанию.
Methods
- __construct() : mixed
- value() : TValue
- Уникальное значение генератора (не совпадающее с прежними).
Constants
DEFAULT_MAX_RETRIES
Число попыток на один вызов по умолчанию.
public
mixed
DEFAULT_MAX_RETRIES
= 10000
Methods
__construct()
public
__construct([int $maxRetries = self::DEFAULT_MAX_RETRIES ]) : mixed
Parameters
- $maxRetries : int = self::DEFAULT_MAX_RETRIES
-
предельное число попыток на один вызов
value()
Уникальное значение генератора (не совпадающее с прежними).
public
value(callable(): TValue $generator) : TValue
Parameters
- $generator : callable(): TValue
-
источник значений
Tags
Return values
TValue —уникальное значение