(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() может возвращать
менее качественные случайные числа.