Randomizer
in package
Ядро случайности: примитивы поверх чистого поставщика битов ({@see RandomEngineInterface}).
Здесь сосредоточена вся арифметика диапазонов, выбор из наборов и перемешивание. Выборка целых — беспристрастная (rejection sampling), поэтому равномерность не искажается остатком от деления. Движок инъектируется, что делает граничные ветви детерминированно тестируемыми.
Table of Contents
Methods
- __construct() : mixed
- asciiCharacter() : string
- Случайный печатный ASCII-символ (33–126).
- asciify() : string
- Заменить в шаблоне `*` на случайный печатный ASCII-символ.
- boolean() : bool
- Булево значение с заданной вероятностью истины в процентах.
- bothify() : string
- Применить к шаблону и {@see self::numerify()}, и {@see self::lexify()}.
- bytes() : string
- Случайная строка сырых байт заданной длины.
- digit() : int
- Случайная десятичная цифра 0–9.
- digitNotZero() : int
- Случайная десятичная цифра 1–9 (без нуля).
- element() : TValue
- Случайный элемент массива.
- elements() : array<int, TValue>
- Несколько случайных элементов массива.
- float() : float
- Число с плавающей точкой в полуинтервале [0, 1).
- floatBetween() : float
- Число с плавающей точкой в диапазоне [$min, $max), при желании округлённое.
- key() : int|string
- Случайный ключ массива.
- letter() : string
- Случайная строчная латинская буква.
- lexify() : string
- Заменить в шаблоне `?` на случайную строчную латинскую букву.
- number() : int
- Случайное целое с заданным числом десятичных разрядов.
- numberBetween() : int
- Равномерное целое в диапазоне [$min, $max] включительно.
- numerify() : string
- Заменить в шаблоне `#` на случайную цифру (0–9), `%` — на цифру 1–9.
- regexify() : string
- Строка, соответствующая упрощённому регулярному выражению.
- shuffle() : array<int, TValue>
- Перемешать массив (алгоритм Фишера—Йетса), вернув новый список значений.
- shuffleString() : string
- Перемешать символы строки (корректно для многобайтовых символов).
Methods
__construct()
public
__construct(RandomEngineInterface $engine) : mixed
Parameters
- $engine : RandomEngineInterface
-
источник псевдослучайных битов
asciiCharacter()
Случайный печатный ASCII-символ (33–126).
public
asciiCharacter() : string
Return values
stringasciify()
Заменить в шаблоне `*` на случайный печатный ASCII-символ.
public
asciify(string $pattern) : string
Parameters
- $pattern : string
-
шаблон (прочие символы сохраняются)
Return values
stringboolean()
Булево значение с заданной вероятностью истины в процентах.
public
boolean([int $chanceOfTrue = 50 ]) : bool
Parameters
- $chanceOfTrue : int = 50
-
вероятность
trueв процентах (0–100)
Return values
boolbothify()
Применить к шаблону и {@see self::numerify()}, и {@see self::lexify()}.
public
bothify(string $pattern) : string
Parameters
- $pattern : string
-
шаблон с
#,%и?
Return values
stringbytes()
Случайная строка сырых байт заданной длины.
public
bytes(int $length) : string
Parameters
- $length : int
-
число байт (>= 0)
Tags
Return values
string —строка из $length байт
digit()
Случайная десятичная цифра 0–9.
public
digit() : int
Return values
int —цифра в [0, 9]
digitNotZero()
Случайная десятичная цифра 1–9 (без нуля).
public
digitNotZero() : int
Return values
int —цифра в [1, 9]
element()
Случайный элемент массива.
public
element(array<string|int, TValue> $array) : TValue
Parameters
- $array : array<string|int, TValue>
-
исходный массив
Tags
Return values
TValue —случайный элемент
elements()
Несколько случайных элементов массива.
public
elements(array<string|int, TValue> $array[, int $count = 1 ][, bool $allowDuplicates = false ]) : array<int, TValue>
Parameters
- $array : array<string|int, TValue>
-
исходный массив
- $count : int = 1
-
сколько элементов вернуть
- $allowDuplicates : bool = false
-
разрешить повторы
Tags
Return values
array<int, TValue> —выбранные элементы
float()
Число с плавающей точкой в полуинтервале [0, 1).
public
float() : float
Return values
floatfloatBetween()
Число с плавающей точкой в диапазоне [$min, $max), при желании округлённое.
public
floatBetween([int|null $decimals = null ][, float $min = 0.0 ][, float $max = 1.0 ]) : float
Parameters
- $decimals : int|null = null
-
число знаков после запятой (null — без округления)
- $min : float = 0.0
-
нижняя граница включительно
- $max : float = 1.0
-
верхняя граница исключительно
Return values
float —значение в [$min, $max)
key()
Случайный ключ массива.
public
key(array<string|int, mixed> $array) : int|string
Parameters
- $array : array<string|int, mixed>
Return values
int|string —случайный существующий ключ
letter()
Случайная строчная латинская буква.
public
letter() : string
Return values
stringlexify()
Заменить в шаблоне `?` на случайную строчную латинскую букву.
public
lexify(string $pattern) : string
Parameters
- $pattern : string
-
шаблон (прочие символы сохраняются)
Return values
stringnumber()
Случайное целое с заданным числом десятичных разрядов.
public
number(int $digits) : int
Parameters
- $digits : int
-
число разрядов (1–9; шире — выходит за поддерживаемый диапазон)
Tags
Return values
int —значение в [0, 10^$digits − 1]
numberBetween()
Равномерное целое в диапазоне [$min, $max] включительно.
public
numberBetween([int $min = 0 ][, int $max = 2147483647 ]) : int
Границы автоматически упорядочиваются, если переданы в обратном порядке.
Parameters
- $min : int = 0
-
нижняя граница включительно
- $max : int = 2147483647
-
верхняя граница включительно
Tags
Return values
int —значение в [$min, $max]
numerify()
Заменить в шаблоне `#` на случайную цифру (0–9), `%` — на цифру 1–9.
public
numerify(string $pattern) : string
Parameters
- $pattern : string
-
шаблон (прочие символы сохраняются)
Return values
stringregexify()
Строка, соответствующая упрощённому регулярному выражению.
public
regexify(string $pattern) : string
Поддерживаются: литералы, экранирование \d/\w/\s и \X, классы
символов [...] с диапазонами, группы-альтернативы (a|b), «любой символ»
., якоря ^/$ (отбрасываются) и кванторы {n}, {n,m}, ?, *, +.
Parameters
- $pattern : string
-
шаблон-регулярное выражение
Return values
string —сгенерированная под шаблон строка
shuffle()
Перемешать массив (алгоритм Фишера—Йетса), вернув новый список значений.
public
shuffle(array<string|int, TValue> $array) : array<int, TValue>
Parameters
- $array : array<string|int, TValue>
-
исходный массив
Tags
Return values
array<int, TValue> —перемешанные значения (0-индексированные)
shuffleString()
Перемешать символы строки (корректно для многобайтовых символов).
public
shuffleString(string $value) : string
Parameters
- $value : string
-
исходная строка
Return values
string —строка из тех же символов в случайном порядке