(PHP 4, PHP 5, PHP 7, PHP 8)
rand — Gera um número inteiro aleatório
Se chamado sem os argumentos opcionais min,
max rand()
retorna um número inteiro pseudo-aleatório entre 0 e
getrandmax(). Se a intenção for obter um número aleatório
entre 5 e 15 (inclusive), por exemplo, use rand(5,
15).
Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.
Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.
Esta função usa a instância global do Mt19937 (“Mersenne Twister”) como a fonte de aleatoriedade a por isso compartilha seu estado com todas as outras funções que usam o Mt19937 global. Usar qualquer uma destas funções avança a sequência para todas as outras funções, independentemente do escopo.
Gerar sequências repetíveis ao semear mt_srand() ou srand() com um valor conhecido também gerará saída repetível desta função.
Prefira usar métodos de Random\Randomizer em todo código novo.
Nota: Anteriormente ao PHP 7.1.0, getrandmax() resultava em apenas 32767 em algumas plataformas (como o Windows por exemplo). Se for necessário um intervalo maior que 32767, especificar
minemaxpermitirá a criação de um intervalo maior que esse ou pode ser considerado usar mt_rand() alternativamente.
Nota: A partir do PHP 7.1.0, rand() usa o mesmo gerador de números aleatórios que mt_rand(). Para preservar a compatibilidade com versões anteriores, rand() permite que
maxseja menor queminem vez de retornarfalsecomo mt_rand().
minO menor valor a ser retornado (padrão: 0)
maxO valor mais alto a ser retornado (padrão: getrandmax())
Um valor pseudoaleatório entre min
(ou 0) e max (ou getrandmax(), inclusive).
| Versão | Descrição |
|---|---|
| 7.2.0 | rand() recebeu uma correção para um bug de descontinuação de módulo. Isso significa que as sequências geradas com uma semente específica podem ser diferentes do PHP 7.1 em máquinas de 64 bits. |
| 7.1.0 | rand() foi transformado em um apelido de mt_rand(). |
Exemplo #1 Exemplo de rand()
<?php
echo rand(), "\n";
echo rand(), "\n";
echo rand(5, 15), "\n";
?>O exemplo acima produzirá algo semelhante a:
7771 22264 11
O intervalo min max deve estar
dentro do intervalo getrandmax(). Ou seja,
abs(max - min) <=
getrandmax().
Caso contrário, rand() poderá retornar números aleatórios de baixa qualidade.