在 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的最大值是什么意思?达到最大值后,ID 会开始重复吗?
您的代码:
$number = mt_rand(163245,978534);
意味着生成的数字将介于这两个数字之间,它将在您运行它时多次生成一个介于这 2 个值之间的数字。任何返回值都不会超出该范围。但是,是的,值可以重复。
例如,尝试使用 mt_rand(1,5) 并告诉它执行 20 次并输出。
考虑使用 uniqid? http://php.net/manual/en/function.uniqid.php
如果您打算生成唯一 ID,则应使用 uniqid
:
$unique_id = uniqid(microtime(true));