0

在 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 会开始重复吗?

4

3 回答 3

2

你的代码:

$number = mt_rand(163245,978534); 

表示生成的数字将介于这两个数字之间,它将在您运行它的次数之多,在这两个值之间生成一个数字。没有返回值超出该范围。但是,是的,值可以重复..

例如,用 mt_rand(1,5) 尝试并告诉它执行 20 次并输出。

于 2012-07-05T09:55:20.537 回答
1

考虑使用uniqid?http://php.net/manual/en/function.uniqid.php

于 2012-07-05T09:56:13.687 回答
1

如果您打算生成唯一 ID,则应使用uniqid

$unique_id = uniqid(microtime(true));
于 2012-07-05T09:57:42.947 回答