下面是我用来生成随机字符串的代码,是否有可能我会重复
<?php
echo random_int(100,999).substr(uniqid(),-4);
?>
答案 0 :(得分:2)
是的,实际上您很有可能会得到一份副本。请考虑以下测试:
$arr = [];
$i = 0;
while (1) {
echo ++$i . PHP_EOL;
$val = random_int(100,999).substr(uniqid(),-4);
if (in_array($val, $arr)) break;
$arr[] = $val;
}
在第一次尝试找到重复项时,我花了不到5000次迭代。 100%保证字符串唯一的唯一方法是将其与集合中的其他字符串进行比较,如果匹配其中一个,则重试。如果您需要的是唯一的-只需使用自动增量即可。