溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PHP中使用內置函數生成一個隨機數

發布時間:2021-03-04 15:29:28 來源:億速云 閱讀:153 作者:Leah 欄目:開發技術

怎么在PHP中使用內置函數生成一個隨機數?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

php有什么用

php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。

1. rand函數

rand() 函數可以不加任何參數,就可以生成隨機整數。如果要設置隨機數范圍,可以在函數中設置 min 和 max 的值。如果需要生成隨機數的種子,使用 srand 函數配置。

echo rand();           // 生成 0~RAND_MAX 之間的隨機數,Windows 系統下 RAND_MAX 的值為 32767,RAND_MAX 可以用函數 getrandmax() 獲得
echo rand(1000000, 9999999);   // 生成 1000000~9999999 之間的隨機數
$seed = time();          // 使用時間作為種子源
srand($seed);           // 播下隨機數發生器種子
echo rand();           // 根據種子生成 0~32768 之間的隨機數。如果 $seed 值固定,則生成的隨機數也不變
echo rand(1000000, 9999999);   // 根據種子生成 1000000~9999999 之間的隨機數。如果 $seed 值固定,則生成的隨機數也不變

2. mt_rand函數

mt_rand() 是使用 Mersenne Twister 算法返回隨機整數,與 rand() 函數的主要區別是:mt_rand()產生隨機數值的平均速度比 libc 提供的 rand() 快四倍,并且播種函數使用mt_srand(),而不是srand()。雖然有這點區別,但是它們的使用方法還是相似的,如下:

echo mt_rand();          // 生成 0~RAND_MAX 之間的隨機數,Windows 系統下 RAND_MAX 的值為 2147483647(與rand()中的 RAND_MAX 不同),RAND_MAX 可以用函數 mt_getrandmax() 獲得
echo mt_rand(1000000, 9999999);  // 生成 1000000~9999999 之間的隨機數,不受系統 RAND_MAX 影響
$seed = time();          // 使用時間作為種子源
mt_srand($seed);         // 播下隨機數發生器種子
echo rand();           // 根據種子生成 0~RAND_MAX 之間的隨機數,如果 $seed 值固定,則生成的隨機數也不變
echo rand(1000000, 9999999);   // 根據種子生成 1000000~9999999 之間的隨機數,如果 $seed 值固定,則生成的隨機數也不變

說明:rand() 和 mt_rand() 兩個函數生成的隨機數都是整數,不會包含英文字母。

3. uniqid函數

uniqid() 函數基于以微秒計的當前時間,生成一個唯一的 ID。默認生成ID的長度為13位或者23位,由英文字母和數字組成。uniqid() 函數有兩個參數,格式如下:

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中使用內置函數生成一個隨機數問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女