【发布时间】:2015-11-14 14:59:35
【问题描述】:
我正在使用以下函数,它使用mt_rand,但我相信它可能会生成一个副本。有没有更好的方法来做到这一点?
sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff));
【问题讨论】:
-
那个问题没有回答我的问题。我正在专门寻找有关创建非重复项的建议。它不必是随机的,只要是唯一的。
-
我知道你来自哪里,问题是“苗条”=“可能”,即使它非常不可能。我想我可能只需要通过数据库执行重复检查。
-
您的代码不会生成 UUID4 - 它在所需位置没有 4。如果你想要一个非重复的,你可以在每次函数调用时自动增加它吗?