random_int

(PHP 7, PHP 8)

random_intПолучает криптографически безопасное равномерно выбранное целое число

Описание

random_int(int$min, int$max): int

Функция создаёт равномерно выбранное целое число между заданными минимумом и максимумом.

Случайная последовательность, которую генерирует функция, подходит для всех приложений, включая генерацию долгосрочных секретов вроде ключей шифрования.

Источники случайных величин в порядке приоритета:

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22, если CCRandomGenerateBytes доступен во время компиляции): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Любая комбинация операционной системы и версии PHP, не указанная ранее: /dev/urandom
  • Если ни один из источников не доступен или все они не генерируют случайную величину, то будет выброшено исключение Random\RandomException.

Замечание: Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.6 включительно доступна » пользовательская реализация.

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

min

Нижняя граница диапазона.

max

Верхняя граница диапазона.

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

Функция возвращает криптографически безопасное равномерно выбранное целое число из замкнутого интервала [min, max]. Функция возвращает как значение min так и значение max.

Ошибки

  • Если подходящие источники случайных величин отсутствуют, то выбрасывается исключение Random\RandomException.
  • Функция выбросит исключение ValueError, если задать значение max меньше, чем значение min.

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

ВерсияОписание
8.2.0 Теперь при сбое генератора CSPRNG функция будет выбрасывать исключение Random\RandomException. Раньше функция выбрасывала исключение Exception.

Примеры

Пример #1 Пример использования функции random_int()

<?php

var_dump
(random_int(100, 999));
var_dump(random_int(-1000, 0));

?>

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

int(248) int(-898)

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

  • Random\Randomizer::getInt() - Получает равномерно выбранное целое число
  • random_bytes() - Получает криптографически безопасные случайные байты
To Top