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