我需要阻止生成的代码产生重复。这是正确的方法吗?还是有更有效的方法?
function generate_code ()
{
$s = get_random_code();
// check if code is already in db
if (is_in_db($s))
return generate_code();
else
return $s;
}
答案 0 :(得分:3)
无需检查数据库,
<?php
uniqid (rand(), true);
?>
答案 1 :(得分:1)
您可以使用while循环,以避免可能的递归深度限制:
function generate_code ()
{
$s = get_random_code();
// check if code is already in db
while (is_in_db($s))
$s = get_random_code();
return $s;
}
答案 2 :(得分:1)
如果在生成代码后,会生成另一个重复的内容?
function generate_code ()
{
$s = get_random_code();
// check if code is already in db
while (is_in_db($s)) {
$s = get_random_code();
}
return $s;
}
无需递归。
答案 3 :(得分:0)