Rumah >pembangunan bahagian belakang >masalah PHP >Apakah fungsi yang melaksanakan rawak dalam PHP?
Fungsi rawak PHP termasuk: 1. rand(), yang boleh menghasilkan integer rawak; 2. mt_rand(); ), boleh mengocok tatasusunan secara rawak; 5. str_shuffle();
Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP7.1, komputer DELL G3
Fungsi rawak PHP terutamanya termasuk rand, mt_rand , array_rand , terdapat juga fungsi shuffle dan str_shuffle secara rawak "tersusun" (kocok), yang boleh menjana uniqid dengan ID unik.
1. Rand menjana nombor rawak
<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $count = strlen($base); $random = ''; for ($i=0; $i < 16; $i++) { $random.=$base[rand(0,$count-1)]; } echo $random; ?>
fungsi rand() menggunakan penjana nombor rawak libc untuk menjana nombor rawak faktor, adalah disyorkan untuk menggunakan fungsi mt_rand sebaliknya.
Fungsi getrandmax() boleh mengembalikan nombor rawak maksimum yang boleh dijana oleh fungsi rand (sistem saya ialah 32767), jadi apabila menetapkan parameter kedua fungsi rand, jangan melebihi nilai pulangan getrandmax.
2. mt_rand menjana nombor rawak
<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $count = strlen($base); $random = ''; for ($i=0; $i < 16; $i++) { $random.=$base[mt_rand(0,$count-1)]; } echo $random; ?>
Banyak penjana nombor rawak libc lama mempunyai beberapa ciri yang tidak pasti dan tidak diketahui dan sangat perlahan. Fungsi rand() PHP menggunakan penjana nombor rawak libc secara lalai. Fungsi mt_rand() digunakan secara tidak rasmi untuk menggantikannya. Fungsi ini menggunakan ciri yang diketahui » Mersenne Twister sebagai penjana nombor rawak, yang boleh menjana nilai rawak secara purata empat kali lebih pantas daripada rand() yang disediakan oleh libc. Ia amat disyorkan untuk menggunakan fungsi mt_rand dan bukannya rand semasa pembangunan.
Jika parameter pilihan min dan maks tidak disediakan, mt_rand() mengembalikan nombor rawak pseudo antara 0 dan mt_getrandmax(). Sebagai contoh, jika anda mahu nombor rawak antara 3 dan 20 (termasuk), gunakan mt_rand(3, 20).
3. Fungsi array_rand
<?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 mengembalikan nilai kunci rawak dalam tatasusunan, yang agak serupa dengan fungsi mt_rand(). istimewa dan boleh digunakan secara fleksibel Itu sahaja.
4. Fungsi shuffle
<?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); } ?>
Fungsi shuffle adalah untuk mengganggu urutan tatasusunan, yang bermaksud sedikit rawak fungsi. Nilai pulangan ialah nilai bool, yang bersamaan dengan merujuk terus pembolehubah asal.
5. Fungsi str_shuffle
<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; echo str_shuffle($base); ?>
Fungsi str_shuffle di sini adalah serupa dengan fungsi shuffle Satu-satunya perbezaan ialah nilai pulangan str_shuffle tidak berubah.
6. fungsi uniqid
<?php echo uniqid(); //54f806528172f ?>
uniqid boleh menghasilkan rentetan yang unik, dan skop aplikasi ini boleh menjadi agak luas
Pembelajaran yang disyorkan : " Tutorial video PHP》
Atas ialah kandungan terperinci Apakah fungsi yang melaksanakan rawak dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!