php代码,如何使用uniqid() 返回随机唯一id值?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
实际业务里面经常有实现随机数id
的需求,一般都是取当前的微秒数值再叠加一些其它随机元素。在这里,可能会用到php
官方提供的一个随机id
的函数:uniqid()
。它有些类似大家已经熟知的uuid()
,但是并不一样。走进正文代码,看看这个uniqid()
函数是怎么使用的吧?
苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程感想感悟。本文测试环境:win10
,php@8.2.11
,nginx@1.15.11
。
函数原型
uniqid()
的函数原型如下:
uniqid(string $prefix = "", bool $more_entropy = false): string
不加参数的默认情况下,返回值类似:
6583b58906428
6583b591ea379
6583b59b0aa96
可见:返回值就后7位相对变化,前面几位数是不变的。
参数一:prefix
prefix
参数增加点前缀文字:
echo uniqid('php_'); //php_6583b5fea56c6
参数二:more_entropy
因为不敢保证其实实在在的返回值唯一性,这里增加了额外的补充参数。再次增加唯一性。
echo uniqid('',true); // 6583b79b9cf902.77607919
echo uniqid(more_entropy:true); // php8新写法,6583b79b9cf9a4.29953727
唯一性
官方说明里面,明确说明:并不保证返回值的唯一性。并且,增加了$more_entropy
参数来规避可能存在的唯一性冲突。
for ($i = 0; $i < 5; $i++) {
echo uniqid(), PHP_EOL;
}
输出:
6583b8e7dda49
6583b8e7dda4e
6583b8e7dda4f
6583b8e7dda50
6583b8e7dda51
输出值是有规律的,看出来了吧?
结语
php
已经不是世界上最好的语言了,这是个多么伤感的故事。更多苏南大叔的php
文章,请参考:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。