mt_rand max value


mt_rand max value

在 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));