日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

PHP内置函数生成随机数的方法汇总

發(fā)布時間:2025/3/14 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP内置函数生成随机数的方法汇总 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

PHP內(nèi)部生成隨機數(shù)的方法相比其他方法簡單,不需要額外配置,是生成隨機數(shù)的首選方案。

1?rand函數(shù)

rand()?函數(shù)可以不加任何參數(shù),就可以生成隨機整數(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ù)基于以微秒計的當(dāng)前時間,生成一個唯一的 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

說明:由于基于系統(tǒng)時間,通過該函數(shù)生成的 ID 不是最佳的。如需生成絕對唯一的 ID,請使用 md5() 函數(shù)。

轉(zhuǎn)自:https://www.awaimai.com/216.html

關(guān)注微信公眾號:lovephp

轉(zhuǎn)載于:https://www.cnblogs.com/ldj3/p/9289395.html

總結(jié)

以上是生活随笔為你收集整理的PHP内置函数生成随机数的方法汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。