PHP中rand()與mt_rand()都是用于產(chǎn)生一個指定范圍內(nèi)單獨隨機數(shù)的函數(shù),如果需要產(chǎn)生多個不重復(fù)的隨機數(shù),請參考:PHP生成指定范圍內(nèi)的N個不重復(fù)的隨機數(shù)。
既然他們都是用于產(chǎn)生一個隨機數(shù),那么他們有什么區(qū)別呢?
rand()
函數(shù)默認使用 libc 隨機數(shù)發(fā)生器,很多老的 libc 的隨機數(shù)發(fā)生器具有一些不確定和未知的特性而且效率很低;mt_rand() 則是用了 Mersenne Twister 中已知的特性作為隨機數(shù)發(fā)生器,它產(chǎn)生隨機數(shù)值的平均速度比 libc 提供的 rand() 快四倍。所以在PHP中mt_rand()函數(shù)是非正式用來替換rand()的。
語法:
rand(min,max)
mt_rand(min,max)
min,max 皆為可選,規(guī)定隨機數(shù)產(chǎn)生的范圍。
如果沒有提供可選參數(shù) min 和 max,則返回 0 到 RAND_MAX 之間的偽隨機整數(shù)。例如,想要 1 到 100(包括 1 和 100)之間的隨機數(shù),用 rand(1, 100) 或 mt_rand(1,100)。
注: 自 PHP 4.2.0 起,PHP產(chǎn)生隨機數(shù)都不再需要用 srand() 或 mt_srand() 函數(shù)產(chǎn)生隨機種子,已經(jīng)會自動完成。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
您可能感興趣的文章:- PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解決辦法
- PHP iconv()函數(shù)字符編碼轉(zhuǎn)換的問題講解
- PHP自動生成縮略圖函數(shù)的源碼示例
- PHP實現(xiàn)獲取毫秒時間戳的方法【使用microtime()函數(shù)】
- PHP htmlspecialchars_decode()函數(shù)用法講解
- php bcdiv和bcmul 函數(shù)的怪異現(xiàn)象