PHP Conference Nagoya 2025

gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_randomNúmero aleatório

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.2.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

gmp_random(int $limiter = 20): GMP

Gera um número aleatório. O número será entre 0 e (2 ** n) - 1, onde n é o número de bits por membro multiplicado por limiter. Se limiter for negativo, são gerados números negativos.

Um membro é um mecanismo interno do GMP. O número de bits em um membro não é estatico, e pode variar de sistema para sistema. Geralmente, o número de bits em um membro é 32 ou 64, mas isto não é garantido.

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

limiter

O limitador.

Um objeto GMP, um int ou uma string que possa ser interpretado como um número seguindo a mesma lógica como se a string fosse usada em gmp_init() com detecção automática de base (ou seja, quando base é igual a 0).

Valor Retornado

Um número GMP aleatório.

Exemplos

Exemplo #1 Exemplo de gmp_random()

<?php
$rand1
= gmp_random(1); // número aleatório de 0 a 1 * bits por membro
$rand2 = gmp_random(2); // número aleatório de 0 a 2 * bits por membro

echo gmp_strval($rand1) . "\n";
echo
gmp_strval($rand2) . "\n";
?>

O exemplo acima produzirá:

1915834968
8642564075890328087

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
1
asphp at dsgml dot com
8 years ago
Warning: Do not use this function.

Use gmp_random_bits() or gmp_random_range() instead.

The documentation and the code for this function do NOT match, and in any case this function is quite useless.
To Top