PHP mt_rand每次返回相同的数字

时间:2014-03-01 23:38:27

标签: php random

random.php

$min=1;
$max=13031;
$ran_num = mt_rand($min,$max);
echo $ran_num;

这在我的本地主机上工作正常,但是当我在我的服务器上运行它时,它总是返回相同的数字。不知道发生了什么。

更新: 我正在运行一个wordpress网站,我把random.php放在主题文件夹中。 我也安装了eaccelerator,这可能是问题,我现在正在研究它

3 个答案:

答案 0 :(得分:2)

如果您的服务器的PHP低于4.2 - 您需要先调用mt_srand才能使用mt_rand

答案 1 :(得分:0)

默认情况下,现代PHP为mt_rand创建不同的编号(它使用libc随机数生成器),因此问题可能出在其他地方。

这可能是由某些缓存引起的,例如检查以下内容:

  • 清除您的网络浏览器缓存(使用私人模式或使用其他浏览器),
  • 禁用Varnish(如果正在使用),
  • 检查代码是否正在使用内存缓存,如Memcached / Redis,
  • 这可能与PHP缓存加速器有关(但不太可能),
  • 重新启动您的Web服务器以防万一(可能是一些额外的缓存模块),
  • 确保您正在编辑正确的文件,并且已正确部署,
  • 以尽可能小的PHP代码进行测试。

答案 2 :(得分:0)

Wordpress可能会使用缓存,如果您重新加载页面,它会从缓存加载,因此您将一次又一次地看到相同的随机数。在这种特殊情况下,它与PHP版本无关 - 为了解决这个问题,需要禁用wordpress缓存。