Перейти к содержимому

srand()

Функция srand() в PHP использовалась для инициализации генератора псевдослучайных чисел. Важно: Эта функция была помечена как устаревшая в PHP 7.1 и полностью удалена в PHP 8.0. Данное руководство объясняет её устаревшее поведение и показывает, как достичь тех же результатов с помощью современных версий PHP.

Что такое функция srand()?

Функция srand() была встроенной функцией PHP, которая инициализировала генератор псевдослучайных чисел с помощью конкретного начального значения (seed). Она принимала необязательный параметр $seed типа целое число и возвращала void. При указании seed генератор выдает предсказуемую последовательность чисел, что полезно для тестирования или воспроизводимых симуляций.

Как использовать функцию srand() (устаревший PHP < 7.1)

Использование srand() в более старых версиях PHP было простым. Вот как это работало:

⚠️ Уведомление об устаревании: Этот пример предназначен для устаревших сред PHP (версий до 7.1). Запуск этого кода в PHP 7.1+ приведет к фатальной ошибке.

Пример для устаревшего PHP

php
<?php
  // Seed the random number generator using the srand() function
  srand(123);

  // Generate a random number using the rand() function
  $result = rand();

  // Output the result
  echo $result;
?>

В этом примере srand(123) инициализирует генератор. Последующие вызовы rand() будут выдавать абсолютно ту же последовательность чисел при каждом запуске скрипта с этим seed.

Современные альтернативы в PHP

Поскольку srand() и rand() удалены в PHP 8.0, вместо них следует использовать следующие современные функции:

  • random_int(): Рекомендуется для большинства случаев использования. Генерирует криптографически стойкие случайные целые числа и не требует ручной инициализации seed.
  • mt_rand(): Работает быстрее, чем random_int(), но не является криптографически стойкой. Начиная с PHP 7.1 алгоритм Mersenne Twister инициализируется автоматически, поэтому ручная установка seed требуется редко.

Современный пример

php
<?php
  // Generate a cryptographically secure random integer between 1 and 100
  $result = random_int(1, 100);
  echo $result;
?>

Заключение

Функция srand() — это устаревший инструмент, который был удален из современных версий PHP. Для текущих проектов используйте random_int() для безопасных случайных чисел или mt_rand() для общих задач генерации случайных значений. Данное руководство поможет вам мигрировать устаревший код и понять современный подход к генерации случайных чисел в PHP.

Практика

Какой функцией является srand() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.