0

我一直在使用 mt_rand(10,100) 来获得 10 到 100 之间的随机数,但它每次都给我 74。

这是我正在使用的东西

$success=mt_rand(10,100);

有任何想法吗 ?我需要以某种方式播种吗?提前致谢。

- -编辑 - -

我刚试过这个

    srand(microtime());
    $success=rand(10,100);

每次还是给出相同的答案,47。

- -编辑 - -

这就是全部

srand(microtime());
$success=rand(10,100);
echo $success;
if ($success == 100) {
    $displayline="You succeeded";
    session_register("displayline");
    header("location:userhome.php");
}
4

4 回答 4

1

你运行的是什么版本的PHP?在 4.2.0 中,mt_rand() 被更改为自动播种。

您可以使用 mt_srand($seed) 为其播种,提供种子值。我使用 microtime() 函数的输出。

编辑:由于您使用的是 5.2,请检查您的代码以查看是否正在调用 mt_srand() 并注释掉所有此类调用。

于 2011-04-19T19:26:54.440 回答
0

删除所有播种功能,不要重新添加它们。然后重新启动服务器。

另外,我发现了这个 PHP 错误,它发生在带有某些版本的 php.ini 文件的 Windows 系统上。

于 2011-04-19T20:11:09.133 回答
0

这很奇怪。如果你只做mt_rand()你会得到什么?有什么价值mt_getrandmax()

尝试播种mt_srand()

于 2011-04-19T19:27:24.827 回答
0

它在自己身上播种。

http://www.suspekt.org/2008/08/17/mt_srand-and-not-so-random-numbers/

猜你应该检查你的PHP版本

于 2011-04-19T19:29:00.140 回答