Генерирует случайное число

# rand

(PHP 4, PHP 5, PHP 7, PHP 8)

rand — Генерирует случайное число

### Описание

function rand(): int
function rand(int `$min`, int `$max`): int

Функция rand() возвращает псевдослучайное целое число в диапазоне от 0 до значения функции getrandmax(), если функцию вызвали без параметров `min` и `max`. Вызов `rand(5, 15)` вернёт случайное число между 5 и 15 включительно.

Предостережение

Функция не создаёт безопасные для криптографических целей значения, поэтому функцию нельзя использовать в криптографических целях или ожидать возврата значения, которое невозможно угадать.

Безопасные для криптографических целей случайные последовательности создаёт композиция класса Random\Randomizer с движком Random\Engine\Secure. В простых сценариях пользуются функциями random_int() и random_bytes() с удобным и безопасным API-интерфейсом, который поддерживается безопасным для криптографических целей CSPRNG-генератором псевдослучайных чисел операционной системы.

Предостережение

Функция создаёт случайные последовательности через глобальный экземпляр генератора псевдослучайных чисел на основе алгоритма Mt19937 «Вихрь Мерсе́на» поэтому разделяет состояние с остальными функциями, которые генерируют случайности через глобальный генератор. Вызов каждой такой функции продвигает последовательность, независимо от области вызова.

Функция выдаст предсказуемые одинаковые последовательности, если инициализировать генератор псевдослучайных чисел функцией mt_srand() или srand() одним и тем же значением.

В новом коде случайные последовательности лучше генерировать через объект Random\Randomizer.

> Замечание: До PHP 7.1.0 на отдельных платформах наподобие Windows функция getrandmax() возвращала число не больше 32 767. Число из диапазона больше 32 767 получают путём установки параметров `min` и `max`, с которыми функция создаёт число из большего диапазона, или вместо этой функции вызывают функцию mt_rand().

> Замечание: Начиная с PHP 7.1.0 функция rand() генерирует случайные числа через тот же алгоритм, что и функция mt_rand(). В целях сохранения обратной совместимости функция rand() разрешает задавать для параметра `max` значение меньше, чем значение параметра `min`, и в отличие от функции mt_rand() не возвращает `false`.

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

`min`

  Наименьшее возвращаемое значение. Значение по умолчанию равно 0.

`max`

  Наибольшее возвращаемое значение. Значение по умолчанию равно значению, которое возвращает функция getrandmax().

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

Функция возвращает псевдослучайное значение в диапазоне от `min` или 0 до `max` или значения функции getrandmax().

### Список изменений

Версия | Описание
--- | ---
7.2.0 | В функции rand() исправили ошибку смещения по модулю, поэтому последовательности, которые сгенерировали с конкретным начальным значением, не совпадают со значениями, которые сгенерировали в PHP 7.1 на 64-битных машинах.
7.1.0 | Функция rand() стала синонимом функции mt_rand().

### Примеры

Пример #1 Пример генерации случайного числа функцией rand()

    <?php

    echo rand(), "\n";
    echo rand(), "\n";

    echo rand(5, 15), "\n";

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

    7771
    22264
    11

### Примечания

Внимание

Ширине диапазона `min` — `max` нельзя выходить за границы значения, которое возвращает функция getrandmax(). Требование выполняется, если: (abs(`max` - `min`) <= getrandmax(). При выходе за пределы диапазона возникает риск снижения качества случайных чисел, которые возвращает функция rand().

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

- srand() - Устанавливает начальное значение для инициализации генератора псевдослучайных чисел
- getrandmax() - Возвращает максимально возможное случайное число
- mt_rand() - Генерирует случайное значение через генератор случайных чисел на базе Вихря Мерсе́нна
- random_int() - Получает криптографически безопасное равномерно выбранное целое число
- random_bytes() - Генерирует криптографически безопасные случайные байты

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