今天小編就為大家分享一篇關于PHP隨機數函數rand()與mt_rand()的講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧。
PHP中rand()與mt_rand()都是用于產生一個指定范圍內單獨隨機數的函數,如果需要產生多個不重復的隨機數,請參考:PHP生成指定范圍內的N個不重復的隨機數。
既然他們都是用于產生一個隨機數,那么他們有什么區別呢?
rand() 函數默認使用 libc 隨機數發生器,很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且效率很低;mt_rand() 則是用了 Mersenne Twister 中已知的特性作為隨機數發生器,它產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。所以在PHP中mt_rand()函數是非正式用來替換rand()的。
語法:
rand(min,max)
mt_rand(min,max)
min,max 皆為可選,規定隨機數產生的范圍。
如果沒有提供可選參數 min 和 max,則返回 0 到 RAND_MAX 之間的偽隨機整數。例如,想要 1 到 100(包括 1 和 100)之間的隨機數,用 rand(1, 100) 或 mt_rand(1,100)。
注: 自 PHP 4.2.0 起,PHP產生隨機數都不再需要用 srand() 或 mt_srand() 函數產生隨機種子,已經會自動完成。
新聞熱點
疑難解答