Maison  >  Article  >  développement back-end  >  Quelles sont les fonctions qui implémentent le caractère aléatoire en PHP ?

Quelles sont les fonctions qui implémentent le caractère aléatoire en PHP ?

青灯夜游
青灯夜游original
2021-09-30 13:56:266871parcourir

Les fonctions aléatoires de PHP incluent : 1. rand(), qui peut générer des entiers aléatoires ; 2. mt_rand(); 3. array_rand(), qui peut renvoyer un nom de clé aléatoire dans le tableau ; randomize Mélangez le tableau ; 5. str_shuffle(); 6. uniqid().

Quelles sont les fonctions qui implémentent le caractère aléatoire en PHP ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

Les fonctions aléatoires PHP incluent principalement rand, mt_rand, array_rand, ainsi que les fonctions "arrangées" (mélangées) aléatoirement shuffle , str_shuffle, qui peut générer un identifiant unique.

1. rand génère des nombres aléatoires

La fonction
<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
$count = strlen($base);
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[rand(0,$count-1)];
}
echo $random;
?>

rand() utilise le générateur de nombres aléatoires de la libc pour générer des nombres aléatoires. Elle est généralement lente et comporte des facteurs incertains.

La fonction getrandmax() peut renvoyer le nombre aléatoire maximum que la fonction rand peut générer (mon système est 32767), donc lorsque vous définissez le deuxième paramètre de la fonction rand, ne définissez pas la valeur de retour de getrandmax trop élevée.

2. mt_rand génère des nombres aléatoires

<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
$count = strlen($base);
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[mt_rand(0,$count-1)];
}
echo $random;
?>

De nombreux anciens générateurs de nombres aléatoires de la libc ont des caractéristiques incertaines et inconnues et sont très lents. La fonction rand() de PHP utilise par défaut le générateur de nombres aléatoires libc. La fonction mt_rand() est utilisée de manière informelle pour la remplacer. Cette fonction utilise les fonctionnalités connues de » Mersenne Twister comme générateur de nombres aléatoires, qui peut générer des valeurs aléatoires en moyenne quatre fois plus rapidement que rand() fourni par la libc. Il est fortement recommandé d'utiliser la fonction mt_rand au lieu de rand lors du développement.

Si les paramètres facultatifs min et max ne sont pas fournis, mt_rand() renvoie un nombre pseudo-aléatoire compris entre 0 et mt_getrandmax(). Par exemple, si vous souhaitez un nombre aléatoire compris entre 3 et 20 (inclus), utilisez mt_rand(3, 20).

3. Fonction array_rand

<?php
$base = array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;l&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,&#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;,&#39;I&#39;,&#39;J&#39;,&#39;K&#39;,&#39;L&#39;,&#39;M&#39;,&#39;N&#39;,&#39;O&#39;,&#39;P&#39;,&#39;Q&#39;,&#39;R&#39;,&#39;S&#39;,&#39;T&#39;,&#39;U&#39;,&#39;V&#39;,&#39;W&#39;,&#39;X&#39;,&#39;Y&#39;,&#39;Z&#39;,&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;);
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[array_rand($base)];
}
echo $random;
?>

array_rand renvoie une valeur de clé aléatoire dans le tableau, qui est quelque peu similaire à la fonction mt_rand() Le reste n'a rien de spécial, utilisez-le simplement avec flexibilité.

4. fonction shuffle

<?php
$base = array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;l&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,&#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;,&#39;I&#39;,&#39;J&#39;,&#39;K&#39;,&#39;L&#39;,&#39;M&#39;,&#39;N&#39;,&#39;O&#39;,&#39;P&#39;,&#39;Q&#39;,&#39;R&#39;,&#39;S&#39;,&#39;T&#39;,&#39;U&#39;,&#39;V&#39;,&#39;W&#39;,&#39;X&#39;,&#39;Y&#39;,&#39;Z&#39;,&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;);
if(shuffle($base)){
 print_r($base);
}
?>

La fonction shuffle consiste à perturber la séquence d'un tableau, qui est un peu aléatoire. Elle est placée ici dans la fonction random. La valeur de retour est une valeur booléenne, ce qui équivaut à référencer directement la variable d'origine.

5. Fonction str_shuffle

<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
echo str_shuffle($base);
?>

La fonction de str_shuffle est similaire à la fonction de shuffle. La seule différence est la valeur de retour. La chaîne d'origine de str_shuffle reste inchangée.

6. La fonction uniqid

<?php
echo uniqid();
//54f806528172f
?>

uniqid peut générer une chaîne unique. La portée de cette application peut être assez large

Apprentissage recommandé : "Tutoriel vidéo PHP"

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn