Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Funktionen implementieren Zufälligkeit in PHP?

Welche Funktionen implementieren Zufälligkeit in PHP?

青灯夜游
青灯夜游Original
2021-09-30 13:56:266871Durchsuche

Zu den Zufallsfunktionen von

PHP gehören: 1. rand(), das zufällige Ganzzahlen generieren kann; 3. array_rand(), das einen zufälligen Schlüsselnamen im Array zurückgeben kann; randomize Das Array mischen; 5. str_shuffle(); 6. uniqid().

Welche Funktionen implementieren Zufälligkeit in PHP?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

PHP-Zufallsfunktionen umfassen hauptsächlich Rand, mt_rand, array_rand sowie die zufällig „angeordneten“ (gemischten) Funktionen shuffle , str_shuffle, das eine Uniqid einer eindeutigen ID generieren kann.

1. Rand generiert Zufallszahlen

<?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() verwendet den Zufallszahlengenerator von libc. Es ist im Allgemeinen langsam und weist unsichere Faktoren auf. Es wird empfohlen, stattdessen die Funktion mt_rand zu verwenden.

Die Funktion getrandmax() kann die maximale Zufallszahl zurückgeben, die die Rand-Funktion generieren kann (mein System ist 32767). Stellen Sie daher beim Festlegen des zweiten Parameters der Rand-Funktion den Rückgabewert von getrandmax nicht zu hoch ein.

2. mt_rand generiert Zufallszahlen

<?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;
?>

Viele alte libc-Zufallszahlengeneratoren haben einige unsichere und unbekannte Eigenschaften und sind sehr langsam. Die rand()-Funktion von PHP verwendet standardmäßig den libc-Zufallszahlengenerator. Die Funktion mt_rand() wird informell verwendet, um sie zu ersetzen. Diese Funktion nutzt die bekannten Funktionen von » Mersenne Twister als Zufallszahlengenerator, der Zufallswerte im Durchschnitt viermal schneller generieren kann als rand() von libc. Es wird dringend empfohlen, während der Entwicklung die Funktion mt_rand anstelle von rand zu verwenden.

Wenn die optionalen Parameter min und max nicht angegeben werden, gibt mt_rand() eine Pseudozufallszahl zwischen 0 und mt_getrandmax() zurück. Wenn Sie beispielsweise eine Zufallszahl zwischen 3 und 20 (einschließlich) wünschen, verwenden Sie mt_rand(3, 20).

3. array_rand-Funktion

<?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 gibt einen zufälligen Schlüsselwert im Array zurück, der der mt_rand()-Funktion etwas ähnelt. Der Rest ist nichts Besonderes, Sie können ihn einfach flexibel verwenden.

4. Shuffle-Funktion

<?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);
}
?>

Die Shuffle-Funktion dient dazu, die Reihenfolge eines Arrays zu unterbrechen, was bedeutet, dass sie hier in die Zufallsfunktion eingefügt wird. Der Rückgabewert ist ein Bool-Wert, was einem direkten Verweis auf die ursprüngliche Variable entspricht.

5. str_shuffle-Funktion

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

Die Funktion von str_shuffle ähnelt hier der Funktion von shuffle. Der einzige Unterschied ist, dass der ursprüngliche String von str_shuffle unverändert bleibt.

6. Die Uniqid-Funktion

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

uniqid kann eine eindeutige Zeichenfolge generieren. Der Umfang dieser Anwendung kann recht umfangreich sein. Empfohlenes Lernen: „

PHP-Video-Tutorial“

Das obige ist der detaillierte Inhalt vonWelche Funktionen implementieren Zufälligkeit in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn