Heim >php教程 >php手册 >php rand() 随机数生成的方法介绍

php rand() 随机数生成的方法介绍

WBOY
WBOYOriginal
2016-06-13 10:14:531796Durchsuche

在php生成随机数有很多种方法rand()只是其实一种还有mt_rand()这个函数也可以生成,区别我就不说了下面来看看。

rand() 函数返回随机整数。

语法
rand(min,max)参数 描述
min,max 可选。规定随机数产生的范围。

如果没有提供可选参数 minmax,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 5 到 15(包括 5 和 15)之间的随机数,用 rand(5, 15)。

在PHP中,要生成一个随机数,可以经过如下三个步骤:

 代码如下 复制代码
//第一步:初始化种子
$seedarray =microtime();
$seedstr =split(" ",$seedarray,5);
$seed =$seedstr[0]*1000000;

 
//第二步:使用种子初始化随机数发生器

 代码如下 复制代码
srand($seed);

 
//第三步:生成指定范围内的随机数

 代码如下 复制代码
$random =rand(0,1000);

其中,前面两步都不需要进行修改,就是最后一步,(0,1000)表示在0到1000中产生一个随机数(包括0在内),这个范围可以修改成你自己需要的范围。

还有一种生成随机数的更加简化的代码:

 代码如下 复制代码

srand((double)microtime()*1000000);
$random =rand(0,1000);

其中,microtime()返回了两个值:当前毫秒数和时间戳。由于我们只是要提取随机数,因而利用毫秒数即可。(double)microtime()的意思就是只返回当前的毫秒值。microtime()是以秒为单位的毫秒数,因而值都是小数,乘以1000000将其换算为整数。第二句代码表示在0到1000中生成一个随机数。

提示和注释
注释:在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范围大于 32768,那么指定 min 和 max 参数就可以生成大于 RAND_MAX 的数了,或者考虑用 mt_rand() 来替代它。

注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现在已自动完成。

注释:在 3.0.7 之前的版本中,max 的含义是 range 。要在这些版本中得到和上例相同 5 到 15 的随机数,简短的例子是 rand (5, 11)。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn