srand()
La fonction srand() en PHP était utilisée pour initialiser le générateur de nombres aléatoires. Important : Cette fonction a été dépréciée dans PHP 7.1 et complètement supprimée dans PHP 8.0. Ce guide explique son comportement hérité et montre comment obtenir les mêmes résultats avec une version moderne de PHP.
Qu'est-ce que la fonction srand() ?
La fonction srand() était une fonction intégrée de PHP qui initialisait le générateur de nombres aléatoires avec une valeur de graine spécifique. Elle acceptait un paramètre entier optionnel $seed et ne retournait rien (void). Lorsqu'une graine est fournie, le générateur produit une séquence de nombres prévisible, ce qui est utile pour les tests ou les simulations reproductibles.
Comment utiliser la fonction srand() (PHP hérité < 7.1)
L'utilisation de srand() dans les anciennes versions de PHP était simple. Voici comment elle fonctionnait :
⚠️ Avertissement de dépréciation : Cet exemple est destiné aux environnements PHP hérités (versions antérieures à 7.1). L'exécution de ce code sur PHP 7.1+ entraînera une erreur fatale.
Exemple hérité
<?php
// Seed the random number generator using the srand() function
srand(123);
// Generate a random number using the rand() function
$result = rand();
// Output the result
echo $result;
?>Dans cet exemple, srand(123) initialise le générateur. Les appels ultérieurs à rand() produiront exactement la même séquence de nombres à chaque exécution du script avec cette graine.
Alternatives modernes sous PHP
Puisque srand() et rand() sont supprimés dans PHP 8.0, utilisez plutôt les fonctions modernes suivantes :
random_int(): Recommandée pour la plupart des cas d'utilisation. Elle génère des entiers aléatoires cryptographiquement sécurisés et ne nécessite pas d'initialisation manuelle.mt_rand(): Plus rapide querandom_int()mais non cryptographiquement sécurisée. PHP 7.1+ initialise automatiquement l'algorithme Mersenne Twister, donc une initialisation manuelle est rarement nécessaire.
Exemple moderne
<?php
// Generate a cryptographically secure random integer between 1 and 100
$result = random_int(1, 100);
echo $result;
?>Conclusion
La fonction srand() est un outil hérité qui a été supprimé des versions modernes de PHP. Pour les projets actuels, utilisez random_int() pour des nombres aléatoires sécurisés ou mt_rand() pour une génération aléatoire à usage général. Ce guide devrait vous aider à migrer du code hérité et à comprendre l'approche moderne de la génération de nombres aléatoires en PHP.
Pratique
Quelle est la fonction srand() en PHP ?