1.首先说明一下两者的区别:
mt_rand()函数比rand()返回结果的速度快4倍(注:这个四倍结果,php文档中是有进行说明的);所以,在生成随机字符串的过程中,推荐大家使用mt_rand()函数。
2.接下来,介绍一下这两个函数的用法(其实用法基本一致):
rand(min,max)
mt_rand(min,max)
min,可填可不填,默认返回0
max,同样可填可不填,默认返回规定最大数,mt_getrandmax()(注:mt_getrandmax函数返回通过调用 rand() 、mt_rand()函数显示的随机数的最大可能值)
缺点:两个函数在在生成字符串的时候,是有存在重复的可能性,给到的max越大,重复可能性越小,针对一些小项目基本够用了;所以在并发量高的情况下使用此函数,并不适用,但是一些大厂也有自己定义的方式,避免出现重复性;
例:
rand(100,999);// echo输出,即在100和999之间生成三位随机数字
rand(10000,99999);// echo输出,即在10000和99999之间生成五位随机数
mt_rand(1000,9999);//echo 输出,即在1000和9999之间生成的随机数
分享一下:
本人平常在项目中常用的生成比如订单ID啊,商品ID啊,优惠券ID,卡ID等等场景常用到的,虽然严格来说不那么严谨,小项目可用
订单: 'D'. date('ymdhis') . mt_rand(1000,9999);
商品ID: 'G' . mt_rand(10000,99999);
例子就不多说啦。