在php文档中,我发现了这个注释:
在32位和64位系统(OS X和Linux)上,mt_getrandmax() 返回2147483647
我已使用提供的简单功能
确认了这一点function gethighest()
{
return mt_getrandmax();
}
$hello = gethighest();
echo '<b>'.$hello.'</b>';
我正在使用此代码段生成唯一ID
$number = mt_rand(163245,978534);
$unique_id = crypt($number);
echo md5($unique_id).'<br/>';
我的问题是,拥有mt_rand的最大值是什么意思?。一旦达到最大值,ids会开始重复吗?
答案 0 :(得分:2)
您的代码:
$number = mt_rand(163245,978534);
表示生成的数字将介于这两个数字之间,它将与运行它的次数一样多,在这两个值之间生成一个数字。否则返回值将超出该范围。但是,值,可以重复......
例如,尝试使用mt_rand(1,5)并告诉它执行20次并输出。
答案 1 :(得分:1)
考虑使用uniqid? http://php.net/manual/en/function.uniqid.php
答案 2 :(得分:1)
如果您打算生成唯一ID,则应使用uniqid
:
$unique_id = uniqid(microtime(true));