博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP内置函数生成随机数的方法汇总
阅读量:4599 次
发布时间:2019-06-09

本文共 1839 字,大约阅读时间需要 6 分钟。

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位字符串,如:55f540e273e93echo uniqid('one.');              // 生成前缀为one.加13位随机字符的字符串,如:one.55f540e273e93echo uniqid('two.', true);        // 生成前缀为two.加23位随机字符的字符串(加了熵),如:two.55f540e273e932.77804707,比上面的多了 10 位,即多了:2.77804707说明:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数。

 

转载于:https://www.cnblogs.com/wuheng1991/p/7660970.html

你可能感兴趣的文章
2015AppStore 上传步骤及常见问题
查看>>
[lintcode easy]Product of Array Exclude Itself
查看>>
OSI七层模型详解
查看>>
Vi编辑器常用命令
查看>>
ACM学习历程——UVA442 Matrix Chain Multiplication(栈)
查看>>
CSS 布局
查看>>
Firefox的缓存问题
查看>>
ENSP错误
查看>>
Java MVC 分页实例
查看>>
响应式布局1--媒体查询和-webkit-min-device-pixel-ratio
查看>>
CocoaPods应用于iOS项目框架管理方案
查看>>
POJ-3233 Matrix Power Series 矩阵A^1+A^2+A^3...求和转化
查看>>
IIS是如何处理ASP.NET请求的
查看>>
SSIS之Foreach循环容器应用
查看>>
局域网内访问机器时出现“未授予在次计算机上的请求登陆类型”
查看>>
硬币组合问题
查看>>
(9)模板层 - templates(模板语言、语法、取值、过滤器、变量的使用)
查看>>
P3469 [POI2008]BLO-Blockade
查看>>
P1171 售货员的难题
查看>>
DevOps之持续交付
查看>>