Heim > Artikel > Backend-Entwicklung > Welche Funktionen implementieren Zufälligkeit in PHP?
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().
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 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $count = strlen($base); $random = ''; 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 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $count = strlen($base); $random = ''; 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('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'); $random = ''; 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('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'); 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 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; 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!