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
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 querandom_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.