En PHP, générer des nombres aléatoires est une opération très courante en développement, comme pour les codes de vérification, l'extraction aléatoire de données, la génération d'identifiants uniques, etc. PHP fournit une variété de fonctions pour implémenter cette fonction, apprenons-en plus ci-dessous.
rand() est la fonction de génération de nombres aléatoires la plus basique, qui peut générer des entiers aléatoires dans une plage spécifiée :
$randomNumber = rand(0, 100); // générer0arriver100entier aléatoire entreLa fonction rand() convient aux applications générales qui ne nécessitent pas un caractère aléatoire élevé.
mt_rand() est basé sur l'algorithme de rotation de Mersenne, et les nombres aléatoires générés sont plus efficaces et plus uniformément répartis que rand() :
$randomNumber = mt_rand(0, 100); // générer0arriver100entier aléatoire entreDans la plupart des cas, il est recommandé d'utiliser mt_rand() au lieu de rand().
random_int() est une fonction introduite dans PHP7. Il est utilisé pour générer des entiers aléatoires dans une plage spécifiée et offre une sécurité plus élevée. Il est très adapté aux applications liées à la cryptographie :
$randomNumber = random_int(0, 100); // générer0arriver100entier aléatoire sécurisé entreSi vous devez générer une séquence aléatoire d'octets, par exemple pour générer des clés de chiffrement ou des chaînes aléatoires, vous pouvez utiliser random_bytes() :
$bytes = random_bytes(16); // générer16Une séquence aléatoire d'octetsUne séquence d'octets peut être convertie en une chaîne hexadécimale lisible via bin2hex().
Bien que PHP n'ait pas de fonction random_float() intégrée, la génération aléatoire de nombres à virgule flottante peut être réalisée grâce à des calculs simples :
$randomFloat = mt_rand() / mt_getrandmax(); // générer0arriver1nombre à virgule flottante aléatoire entreSi votre application a des exigences de sécurité extrêmement élevées, comme la génération de jetons ou de clés de session, vous pouvez utiliser openssl_random_pseudo_bytes() :
$secureBytes = openssl_random_pseudo_bytes(32); // générer32Une séquence aléatoire d'octets sécuriséePHP fournit une variété de méthodes de génération de nombres aléatoires, et différentes fonctions sont adaptées à différents scénarios :
Choisir les bonnes fonctions peut améliorer la sécurité et les performances de votre programme.