W3docs

getrandmax()

Aprenda a usar a função getrandmax() em PHP para obter o valor máximo aleatório que pode ser gerado pela função rand().

A função getrandmax() do PHP retorna o maior inteiro que a função rand() pode produzir quando chamada sem argumentos. Conhecer esse limite superior permite escalar com segurança valores aleatórios para um intervalo próprio, razão pela qual getrandmax() é mais útil em conjunto com rand() do que isoladamente.

Sintaxe

getrandmax(): int

getrandmax() não recebe parâmetros e retorna um int. No PHP moderno (7.1 e posterior), retorna consistentemente 2147483647 (o valor máximo de um inteiro com sinal de 32 bits, 2^31 - 1), independentemente do sistema operacional ou da arquitetura. Antes do PHP 7.1, o valor podia diferir entre plataformas, o que é uma das razões pelas quais a família mt_rand(), mais portável, é atualmente preferida.

Como usar getrandmax()

Como não recebe argumentos, chamar a função é simples:

php— editable, runs on the server

Isso imprime 2147483647 em uma instalação moderna do PHP.

Escalando rand() para um intervalo personalizado

O principal uso prático de getrandmax() é converter a saída de rand() em uma fração ou em um intervalo menor. Dividir rand() por getrandmax() produz um float entre 0 e 1, que pode ser multiplicado para caber em qualquer intervalo desejado:

<?php
// A random float between 0 and 1
$fraction = rand() / getrandmax();

// Scale that fraction into the range 0–100
$scaled = $fraction * 100;

echo "Fraction: " . ($fraction >= 0 && $fraction <= 1 ? "in [0, 1]" : "out of range") . "\n";
echo "Scaled value is between 0 and 100: " . ($scaled >= 0 && $scaled <= 100 ? "yes" : "no") . "\n";
?>

Aqui a saída confirma que a fração permanece dentro de [0, 1] e o valor escalado dentro de [0, 100]. Como os números exatos são aleatórios, verificar o intervalo (em vez de um valor fixo) é a forma confiável de validar a lógica.

getrandmax() vs. mt_getrandmax()

No PHP 7.0+, rand() e mt_rand() compartilham o mesmo gerador de números aleatórios subjacente, portanto getrandmax() e mt_getrandmax() retornam o mesmo valor. Para código novo, prefira:

  • mt_rand() para números pseudoaleatórios mais rápidos e de melhor qualidade.
  • random_int() quando forem necessários valores criptograficamente seguros (senhas, tokens, códigos de segurança).

Use rand() e getrandmax() principalmente ao trabalhar com código legado que já os utiliza.

Conclusão

A função getrandmax() informa o limite superior de rand(), um valor fixo de 2147483647 no PHP moderno. Seu real valor está em ser o denominador ao escalar inteiros aleatórios em floats ou intervalos personalizados. Para novos projetos, prefira a família mt_rand() ou random_int() para aleatoriedade sensível à segurança.

Prática

Prática
What is the purpose of the getrandmax() function in PHP?
What is the purpose of the getrandmax() function in PHP?
Was this page helpful?