(PHP 4, PHP 5, PHP 7)
mt_rand — Génère une meilleure valeur aléatoire
$min
, int $max
)De nombreux générateurs de nombres aléatoires provenant de vieilles bibliothèques libcs ont des comportements douteux et sont très lents. Par défaut, PHP utilise le générateur de nombres aléatoires de libc avec la fonction rand(). mt_rand() est une fonction de remplacement, pour cette dernière. Elle utilise un générateur de nombres aléatoire de caractéristique connue, le " » Mersenne Twister " qui est 4 fois plus rapide que la fonction standard libc.
Appelée sans les arguments optionnels min
et
max
, mt_rand() retourne un nombre
pseudoaléatoire, entre 0 et mt_getrandmax().
Pour obtenir un nombre entre 5 et 15 inclus, il faut utiliser
mt_rand(5,15).
min
Valeur la plus basse qui peut être retournée (par défaut : 0)
max
Valeur la plus haute qui peut être retournée (par défaut : mt_getrandmax()).
Un entier aléatoire compris entre min
(ou 0)
et max
(ou mt_getrandmax(), inclusif),
ou FALSE
si le paramètre max
est inférieur à
min
.
Version | Description |
---|---|
5.3.4 |
Emet une alerte de niveau E_WARNING et retourne
FALSE si le paramètre max < au paramètre
min .
|
Exemple #1 Exemple avec mt_rand()
<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";
echo mt_rand(5, 15);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
1604716014 1478613278 6
Cette fonction ne génère pas de valeurs sécurisées d'un point de vue cryptologie, et ne doit pas être utilisée dans un contexte de cryptologie. Si vous avez besoin d'un valeur sécurisée d'un point de vue cryptologique, utilisez plutôt random_int(), random_bytes(), ou openssl_random_pseudo_bytes().
Les valeurs retournées par la fonction mt_rand() sont
biaisées par les nombres paires pour les versions de PHP compilées sur les
architectures 64-bits lorsque le paramètre
max
est au-delà de 2^32.
Ceci car si max
est supérieur à la valeur retournée par mt_getrandmax(), la sortie du générateur de valeur aléatoire doit être élargie.