array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.rand.php', 1 => 'rand', ), 'up' => array ( 0 => 'ref.random.php', 1 => 'Функции Random', ), 'prev' => array ( 0 => 'function.mt-srand.php', 1 => 'mt_srand', ), 'next' => array ( 0 => 'function.random-bytes.php', 1 => 'random_bytes', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/random/functions/rand.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
rand — Генерирует случайное число
Функция rand() возвращает псевдослучайное целое число в диапазоне
от 0 до значения, которое возвращает функция getrandmax(),
если функцию вызвали без параметров min
и max
.
Вызовите rand(5, 15)
, если нужно случайное число между 5 и 15 (включительно).
Функция не создаёт криптографически безопасные значения и не должна использоваться в криптографических целях или целях, которые требуют, чтобы возвращаемые значения были недоступны для разгадывания.
Если нужна криптографически безопасная случайная последовательность, можно использовать класс Random\Randomizer с движком Random\Engine\Secure. Для простых сценариев существуют функции random_int() и random_bytes() с удобным API криптографически безопасного генератора псевдослучайных чисел (CSPRNG), поддерживаемого операционной системой.
Замечание: На отдельных платформах, например ОС 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().
То есть (max
− min
) <= getrandmax().
В противном случае функция rand() может возвращать
менее качественные случайные числа.