怎么在PHP中使用內(nèi)置函數(shù)生成一個隨機數(shù)?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:空間域名、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、原州網(wǎng)站維護、網(wǎng)站推廣。php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因為php是開源的,從而使得php經(jīng)久不衰。
1. rand函數(shù)
rand() 函數(shù)可以不加任何參數(shù),就可以生成隨機整數(shù)。如果要設置隨機數(shù)范圍,可以在函數(shù)中設置 min 和 max 的值。如果需要生成隨機數(shù)的種子,使用 srand 函數(shù)配置。
echo rand(); // 生成 0~RAND_MAX 之間的隨機數(shù),Windows 系統(tǒng)下 RAND_MAX 的值為 32767,RAND_MAX 可以用函數(shù) getrandmax() 獲得 echo rand(1000000, 9999999); // 生成 1000000~9999999 之間的隨機數(shù) $seed = time(); // 使用時間作為種子源 srand($seed); // 播下隨機數(shù)發(fā)生器種子 echo rand(); // 根據(jù)種子生成 0~32768 之間的隨機數(shù)。如果 $seed 值固定,則生成的隨機數(shù)也不變 echo rand(1000000, 9999999); // 根據(jù)種子生成 1000000~9999999 之間的隨機數(shù)。如果 $seed 值固定,則生成的隨機數(shù)也不變
2. mt_rand函數(shù)
mt_rand() 是使用 Mersenne Twister 算法返回隨機整數(shù),與 rand() 函數(shù)的主要區(qū)別是:mt_rand()產(chǎn)生隨機數(shù)值的平均速度比 libc 提供的 rand() 快四倍,并且播種函數(shù)使用mt_srand(),而不是srand()。雖然有這點區(qū)別,但是它們的使用方法還是相似的,如下:
echo mt_rand(); // 生成 0~RAND_MAX 之間的隨機數(shù),Windows 系統(tǒng)下 RAND_MAX 的值為 2147483647(與rand()中的 RAND_MAX 不同),RAND_MAX 可以用函數(shù) mt_getrandmax() 獲得 echo mt_rand(1000000, 9999999); // 生成 1000000~9999999 之間的隨機數(shù),不受系統(tǒng) RAND_MAX 影響 $seed = time(); // 使用時間作為種子源 mt_srand($seed); // 播下隨機數(shù)發(fā)生器種子 echo rand(); // 根據(jù)種子生成 0~RAND_MAX 之間的隨機數(shù),如果 $seed 值固定,則生成的隨機數(shù)也不變 echo rand(1000000, 9999999); // 根據(jù)種子生成 1000000~9999999 之間的隨機數(shù),如果 $seed 值固定,則生成的隨機數(shù)也不變
說明:rand() 和 mt_rand() 兩個函數(shù)生成的隨機數(shù)都是整數(shù),不會包含英文字母。
3. uniqid函數(shù)
uniqid() 函數(shù)基于以微秒計的當前時間,生成一個的 ID。默認生成ID的長度為13位或者23位,由英文字母和數(shù)字組成。uniqid() 函數(shù)有兩個參數(shù),格式如下:
uniqid(prefix,more_entropy)
其中,
prefix:生成ID的前綴
more_entropy:是否添加額外的熵
如下的程序,
echo uniqid(); // 生成13位字符串,如:55f540e273e93 echo uniqid('one.'); // 生成前綴為one.加13位隨機字符的字符串,如:one.55f540e273e93 echo uniqid('two.', true); // 生成前綴為two.加23位隨機字符的字符串(加了熵),如:two.55f540e273e932.77804707,比上面的多了 10 位,即多了:2.77804707
關于怎么在PHP中使用內(nèi)置函數(shù)生成一個隨機數(shù)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。