Aller au contenu

mt_srand()

Aujourd'hui, nous allons discuter de la fonction mt_srand() en PHP. Cette fonction initialise le générateur de nombres aléatoires utilisé par mt_rand(). Note : mt_srand() est dépréciée depuis PHP 8.1 et supprimée dans PHP 8.4. Pour les applications PHP modernes, utilisez plutôt random_int() ou random_bytes().

Qu'est-ce que la fonction mt_srand() ?

La fonction mt_srand() initialise le générateur de nombres aléatoires Mersenne Twister avec une valeur de graine spécifique. Lorsqu'une graine fixe est fournie, mt_rand() produit une séquence de nombres prévisible et reproductible. Ce comportement déterministe est principalement utile pour les tests, le débogage ou les scénarios nécessitant une sortie aléatoire cohérente.

Comment utiliser la fonction mt_srand()

L'utilisation de mt_srand() est simple. Voici un exemple de base :

Comment utiliser la fonction mt_srand() en PHP ?

php
<?php
// Seed the random number generator using the mt_srand() function
mt_srand(12345);

// Generate a random integer using the mt_rand() function
$result = mt_rand();

// Output the result
echo $result;
?>

Dans cet exemple, mt_srand(12345) définit la graine du générateur. Les appels suivants à mt_rand() produiront la même sortie lors d'exécutions différentes, car la graine reste constante. Le résultat est stocké dans $result et affiché à l'écran.

Note de compatibilité des versions : Sous PHP 8.1+, ce code déclenchera un avertissement de dépréciation. Pour PHP 8.4+ et les projets modernes, remplacez mt_srand()/mt_rand() par random_int() pour une génération de nombres aléatoires sécurisée et prise en charge.

Conclusion

Bien que mt_srand() fournisse des séquences aléatoires déterministes pour les codes hérités ou des besoins de test spécifiques, elle est dépréciée dans PHP 8.1 et supprimée dans PHP 8.4. Le développement PHP moderne devrait s'appuyer sur random_int() ou random_bytes() pour une génération de nombres aléatoires sécurisée et prise en charge. Nous espérons que ce guide clarifie le contexte historique et l'utilisation correcte de mt_srand() dans les anciens environnements PHP.

Pratique

Quel est l'objectif de la fonction mt_srand() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.