Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mt_rand每次返回相同的数字_Php_Random - Fatal编程技术网

PHP mt_rand每次返回相同的数字

PHP mt_rand每次返回相同的数字,php,random,Php,Random,random.php $min=1; $max=13031; $ran_num = mt_rand($min,$max); echo $ran_num; 这在我的本地主机上运行正常,但是当我在服务器上运行它时,它总是返回相同的数字。不知道发生了什么事 更新: 我正在运行一个wordpress站点,我将random.php放在主题文件夹中。 我还安装了eaccelerator,这可能是问题所在,我现在正在研究它,如果您的服务器的PHP低于4.2-您需要调用,然后才能使用mt_rand默认情况下,

random.php

$min=1;
$max=13031;
$ran_num = mt_rand($min,$max);
echo $ran_num;
这在我的本地主机上运行正常,但是当我在服务器上运行它时,它总是返回相同的数字。不知道发生了什么事

更新: 我正在运行一个wordpress站点,我将random.php放在主题文件夹中。
我还安装了eaccelerator,这可能是问题所在,我现在正在研究它,如果您的服务器的PHP低于4.2-您需要调用,然后才能使用mt_rand默认情况下,现代PHP为创建不同的数字(它使用libc随机数生成器),因此问题可能在其他地方

这可能是由于某些缓存造成的,例如,请检查以下各项:

  • 清除web浏览器缓存(使用专用模式或使用其他浏览器)
  • 禁用清漆(如果正在使用)
  • 检查代码是否使用内存缓存,如Memcached/Redis
  • 这可能与PHP缓存加速器有关(但可能性较小)
  • 重新启动web服务器以防万一(可能是一些额外的缓存模块)
  • 确保您正在编辑正确的文件,并且该文件已正确部署
  • 在尽可能小的PHP代码中测试它

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

它每次返回的数字是多少?你到底是不是喜欢mt_srand()呢?从4.2开始,你就不必再播种了。@mdsl-播种的有趣之处:如果你每次都用相同的值播种,每次都会得到相同的随机数序列,我总是得到7078。但是在localhost上,我总是得到不同的数字,我需要它从一个范围返回一个随机数。@MarkBaker当然可以,但是PHP不应该每次都使用不同的数字来种子吗?这就是我对文档的理解。另外,如果你的php版本低于4.2,那么该死的,更新你的SHIZPHP4.2还存在吗?!是的,有时甚至可以找到PHP3(好消息-非常罕见):)我有PHP5.2installed@JayChen那么它与种子无关,它可能是某种缓存