W3docs

srand()

Conheça a função srand() no PHP, usada para inicializar o gerador de números aleatórios, e as alternativas modernas recomendadas.

A função srand() no PHP era utilizada para inicializar o gerador de números aleatórios. Importante: Esta função foi descontinuada no PHP 7.1 e completamente removida no PHP 8.0. Este guia explica seu comportamento legado e mostra como obter os mesmos resultados com o PHP moderno.

O que é a Função srand()?

A função srand() era uma função interna do PHP que inicializava o gerador de números aleatórios com um valor de semente específico. Ela aceitava um parâmetro inteiro opcional $seed e retornava void. Quando uma semente é fornecida, o gerador produz uma sequência previsível de números, o que é útil para testes ou simulações reproduzíveis.

Como Usar a Função srand() (PHP Legado < 7.1)

Usar srand() em versões mais antigas do PHP era simples. Veja como funcionava:

⚠️ Aviso de Descontinuação: Este exemplo é para ambientes PHP legados (versões anteriores a 7.1). Executar este código no PHP 7.1+ resultará em um erro fatal.

Exemplo Legado

php— editable, runs on the server

Neste exemplo, srand(123) inicializa o gerador. Chamadas subsequentes a rand() produzirão exatamente a mesma sequência de números cada vez que o script for executado com essa semente. Esse determinismo — e não a aleatoriedade — era o principal objetivo da semente: permitia reproduzir uma sequência "aleatória" sob demanda para testes unitários, repetições de jogos ou depuração.

Chamar srand() sem argumento (ou, no PHP 4.2.0+, nunca chamá-la) inicializava o gerador com um valor difícil de prever, fazendo com que cada execução produzisse uma sequência diferente.

Alternativas Modernas no PHP

Como srand() e rand() foram removidas no PHP 8.0, use as seguintes funções modernas:

  • random_int(): Recomendada para a maioria dos casos de uso. Gera inteiros aleatórios criptograficamente seguros e não requer inicialização manual.
  • mt_rand(): Mais rápida que random_int(), mas não criptograficamente segura. O PHP 7.1+ inicializa automaticamente o algoritmo Mersenne Twister, portanto a inicialização manual raramente é necessária.

Se você ainda precisar de uma sequência reproduzível para testes — o motivo original para usar srand() — inicialize explicitamente o gerador Mersenne Twister com mt_srand() antes de chamar mt_rand(). Para encontrar o maior valor que essas funções podem retornar, consulte mt_getrandmax().

Exemplo Moderno

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

Conclusão

A função srand() é uma ferramenta legada que foi removida do PHP moderno. Para projetos atuais, use random_int() para números aleatórios seguros ou mt_rand() para geração de números aleatórios de uso geral. Este guia deve ajudá-lo a migrar código legado e compreender a abordagem moderna para geração de números aleatórios em PHP.

Prática

Prática
Qual é a função de srand() no PHP?
Qual é a função de srand() no PHP?
Was this page helpful?