(PHP 4, PHP 5, PHP 7, PHP 8)
rand — Генерирует случайное число
$min
, int $max
): int
При вызове без параметров min
и max
,
возвращает псевдослучайное целое в диапазоне от 0 до getrandmax().
Например, если вам нужно случайное число между 5 и 15 (включительно),
вызовите rand(5, 15)
.
Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.
Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.
Замечание: На некоторых платформах (таких как Windows) getrandmax() всего лишь 32767. Чтобы расширить диапазон, используйте параметры
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() может возвращать
менее качественные случайные числа.