mt_rand

(PHP 4, PHP 5)

mt_randGénère une meilleure valeur aléatoire

Description

int mt_rand ( void )
int mt_rand ( int $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).

Liste de paramètres

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()).

Valeurs de retour

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.

Historique

Version Description
5.3.4 Emet une alerte de niveau E_WARNING et retourne FALSE si le paramètre max < au paramètre min.
4.2.0Le générateur de nombres aléatoires est initialisé automatiquement.

Exemples

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

Notes

Attention

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 la fonction openssl_random_pseudo_bytes().

Attention

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.

Voir aussi

LoadingChargement en cours