0

由于uniqid()根据给定的值提供了一个随机字符串,它甚至可能吗?如果是这样,uniqid('foo')相等的机会是uniqid('foo2')多少?

4

1 回答 1

2

uniqid()不提供基于字符串的随机值。

根据文档

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

foo并且foo2仅用于作为值的前缀。例如,这段代码:

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

会输出:

foo510aac3bedcdb
foo2510aac3bedd03

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

于 2013-01-31T17:43:16.530 回答