PHP 8.6.0 Beta 1 is available for testing

rand

(PHP 4, PHP 5, PHP 7, PHP 8)

randГенерирует случайное число

Описание

function rand(): int
function rand(int $min, int $max): int

Функция rand() возвращает псевдослучайное целое число в диапазоне от 0 до значения функции getrandmax() , если функцию вызвали без параметров min и max. Вызов rand(5, 15) вернёт случайное число между 5 и 15 включительно.

Предостережение

Функция не создаёт безопасные для криптографических целей значения, поэтому функцию нельзя использовать в криптографических целях или ожидать возврата значения, которое невозможно угадать.

Безопасные для криптографических целей случайные последовательности создаёт композиция класса Random\Randomizer с движком Random\Engine\Secure . В простых сценариях пользуются функциями random_int() и random_bytes() с удобным и безопасным API-интерфейсом, который поддерживается безопасным для криптографических целей CSPRNG-генератором псевдослучайных чисел операционной системы.

Предостережение

Функция создаёт случайные последовательности через глобальный экземпляр генератора псевдослучайных чисел на основе алгоритма Mt19937 «Вихрь Мерсе́на» поэтому разделяет состояние с остальными функциями, которые генерируют случайности через глобальный генератор. Вызов каждой такой функции продвигает последовательность, независимо от области вызова.

Функция выдаст предсказуемые одинаковые последовательности, если инициализировать генератор псевдослучайных чисел функцией mt_srand() или srand() одним и тем же значением.

В новом коде случайные последовательности лучше генерировать через объект Random\Randomizer .

Замечание: До PHP 7.1.0 на отдельных платформах наподобие 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

Примечания

Внимание

Ширине диапазона minmax нельзя выходить за границы значения, которое возвращает функция getrandmax() . Требование выполняется, если: (abs(max - min) <= getrandmax() . При выходе за пределы диапазона возникает риск снижения качества случайных чисел, которые возвращает функция rand().

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

  • srand() - Устанавливает начальное значение для инициализации генератора псевдослучайных чисел
  • getrandmax() - Возвращает максимально возможное случайное число
  • mt_rand() - Генерирует случайное значение через генератор случайных чисел на базе Вихря Мерсе́нна
  • random_int() - Получает криптографически безопасное равномерно выбранное целое число
  • random_bytes() - Генерирует криптографически безопасные случайные байты

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /