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

说明:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数。

转自:https://www.awaimai.com/216.html

关注微信公众号:lovephp

php中生成随机数种子的函数有哪些,PHP内置函数生成随机数的方法汇总相关推荐

  1. php批量生成随机数函数,PHP内置函数生成随机数的方法汇总

    PHP内部生成随机数的方法相比其他方法简单,不需要额外配置,是生成随机数的首选方案. 1. rand函数 rand() 函数可以不加任何参数,就可以生成随机整数.如果要设置随机数范围,可以在函数中设置 ...

  2. php如何用rane函数取随机数,PHP内置函数生成随机数实例

    1. rand函数 rand() 函数可以不加任何参数,就可以生成随机整数.如果要设置随机数范围,可以在函数中设置 min 和 max 的值.如果需要生成随机数的种子,使用 srand 函数配置. e ...

  3. python在匿名函数作和_python内置函数和匿名函数

    楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...

  4. 不是python内置函数的是_Python内置函数

    print(abs(2)) #求出绝对值 print(all(([],1,3))) #传1个可跌倒对象,元素中包含的全部为可迭代对象,返回True 其他返回False #如果可迭代对象是空,就返回Tr ...

  5. Python68个内置函数大总结,内置函数的骚操作来了!!

    ​学了快一年的Python了,突然发现,内置函数能够大大的加快开发时的效率,花了一周时间整理了一下68个内置函数,来看看内置函数的骚操作吧! 由于平台原因图片不是很清晰如果想要获取高清的照片或者pdf ...

  6. [JSP][JSTL]页面调用函数--它${fn:}内置函数、是推断字符串是空的、更换车厢

    页面中调用函数--之${fn:}内置函数 函数描写叙述 fn:contains(string, substring) 假设參数string中包括參数substring,返回true fn:contai ...

  7. php内置函数和扩展,PHP 内置函数strlen 和mbstring扩展函数mb_strlen的区别

    #EXAMPLE $str_uncode = "简体中文Chinese(Simplified)"; //统计字符串长度 echo strlen($str_uncode).' ';/ ...

  8. python for everybody作业和测试答案_【计算题】编写函数,模拟 Python 内置函数 reversed() 。...

    [计算题]编写函数,模拟 Python 内置函数 reversed() . 更多相关问题 In California, there lives a pretty girl called Donna G ...

  9. python中char是什么_char是Python的内置函数吗,python,之内

    ''' 内置函数 : 作用域相关(2) : locals : 返回当前局部作用域内的所有内容 globals : 返回全局作用域内的所有内容 基础数据类型相关(38) : 和数字相关 : 数据类型 : ...

最新文章

  1. Spring Boot + BeetlSQL + H2数据库项目整合
  2. 【Groovy】集合遍历 ( 调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 | =~ 运算符等价于 contains 函数 | 代码示例 )
  3. git 上传代码到指定仓库_初次使用git上传代码到github远程仓库
  4. Django+JWT实现Token认证
  5. Splash 占位图适配 全面屏笔记
  6. 【收藏】Kubernetes学习之路(二十二)之Pod资源调度
  7. Android之的性能优化方法
  8. Linux 命令之 ls -- 列出指定目录下的内容
  9. B端产品如何做好从1到10的架构搭建?
  10. mysql执行的list_CMD如何进入Mysql命令并执行相关查询
  11. Session丢失的解决办法小结(转)
  12. 泛微OA的http接口创建
  13. Maya中英文对照表(四)
  14. 如何免费获取一个 Cloudflare 公网 IP
  15. 团队作业8----第二次项目冲刺(Beta阶段) 第四天
  16. linux下ppt转图片的方法
  17. 什么是BIM开发?这篇文章可以告诉你
  18. Git - git checkout git branch 创建/删除分支用法及区别
  19. 一文带你浅入浅出Keepalived
  20. android蓝牙传文件在哪里找,手机蓝牙传输的文件在哪里_华为手机蓝牙传输记录在哪-系统城...

热门文章

  1. java版b2b2c o2o 多租户多商家电子商务之(商家管理)SpringCloud SpringBoot Mybatis Uniapp 分布式商城源码 电子商务源码 社交电商 直播带货
  2. MFC显示进度条时间
  3. wpf修改theme中的样式_WPF Mahapps.Metro 设置主题样式
  4. 基于LabView条件结构的LED数码管
  5. 巧用3721上网助手,练就“踏网无痕”(转)
  6. oleDB 更新 access 数据库
  7. 熊猫烧香_汇编级_超详细分析
  8. 石油化工设备维护检修规程_2020年(第六届)全国石油化工企业设备维护与检修高端研讨会组委会全体成员祝大家国庆、中秋双节愉快!...
  9. 又躺赚1亿?东方联盟创始人郭盛华,会的仅仅是技术吗?
  10. go桌面计算机,GO桌面快速找到应用程序方法教程