在PHP中,uniqid('foo')是否有可能与uniqid('foo2')具有相同的值?

时间:2013-01-31 09:38:28

标签: php

由于uniqid()根据给定的值提供随机字符串,是否可能,如果是,uniqid('foo')等于uniqid('foo2')的可能性是多少?

1 个答案:

答案 0 :(得分:1)

uniqid()不会根据字符串提供随机值。

documentation

  

根据当前时间(以微秒为单位)获取带前缀的唯一标识符。

foofoo2仅用于为值添加前缀。例如,此代码:

echo uniqid('foo') . "\n";
echo uniqid('foo2');

会输出:

foo510aac3bedcdb
foo2510aac3bedd03

只要前缀不同,值就不会发生冲突。但是如果使用相同的前缀,如果2个请求是在相同的微秒进行,则可能发生冲突。如果您担心碰撞,请将第二个参数设置为true,以便为您的值添加更多熵。