mt_rand
(PHP 4, PHP 5, PHP 7, PHP 8)
mt_rand — Gera um valor aleatório através do Gerador de Números Aleatórios Mersenne Twister
Descrição
Muitos geradores de números aleatórios de libcs mais antigos
têm características duvidosas ou desconhecidas e são lentos.
A função mt_rand() é um substituto imediato
para a antiga rand(). Ele usa um gerador de
números aleatórios com características conhecidas usando o
» Mersenne Twister, que
produzirá números aleatórios quatro vezes mais rápido do que o
libc rand() médio fornece.
Se chamado sem os argumentos opcionais min
,
max
mt_rand()
retorna um valor pseudo-aleatório entre 0 e
mt_getrandmax(). Se você quiser um número aleatório
entre 5 e 15 (inclusive), por exemplo, use mt_rand(5,
15)
.
Cuidado
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.
Parâmetros
min
-
Valor mais baixo opcional a ser retornado (padrão: 0)
max
-
Valor mais alto opcional a ser retornado (padrão: mt_getrandmax())
Valor Retornado
Um valor inteiro aleatório entre min
(ou 0)
e max
(ou mt_getrandmax(), inclusive),
ou false
se max
for menor que min
.
Exemplos
Exemplo #1 Exemplo de mt_rand()
<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";
echo mt_rand(5, 15), "\n";
?>
O exemplo acima produzirá
algo semelhante a:
Notas
Aviso
O intervalo min
max
deve
estar dentro do intervalo mt_getrandmax(). Ou seja, (max
-
min
) <= mt_getrandmax()
Caso contrário, mt_rand() poderá retornar números aleatórios piores
do que deveria.
Veja Também
- mt_srand() - Semeia o Gerador de Números Aleatórios Mersenne Twister
- mt_getrandmax() - Mostra o maior valor aleatório possível
- random_int() - Obtém um número inteiro selecionado uniformemente e criptograficamente seguro
- random_bytes() - Obtém bytes aleatórios criptograficamente seguros