11.3 随机数
生成随机数是程序开发中经常需要处理的内容,如对注册用户生成一个随机密码,或者生成随机验证码等。
11.3.1 生成随机数的步骤
在PHP程序中,生成随机数的步骤如下所述。
(1)初始化随机数种子。
(2)使用这个种子初始化随机数发生器。
(3)生成随机数。
11.3.2 生成随机数的函数
PHP的更高版本(PHP 4.2.0以后)中不再使用随机数种子初始化随机数发生器,通常使用函数mt_rand()可以生成更好的随机数,语法如下。
int mt_rand(int $min, int $max);
该函数可以返回$min到$max之间的随机数。参数$min和$max是可选的,如果没有指定这两个参数,mt_rand()返回0到RAND_MAX之间的伪随机数。代码11-3演示了该函数的用法。
代码11-3 使用函数mt_rand()生成随机数11-3.php
01 <?php 02 echo mt_rand(); // 返回0 ~RAND_MAX 之间的伪随机数 03 echo "<br/>"; 04 echo mt_rand(100,999); // 生成100 ~999 之间的随机数 05 echo "<hr/>"; 06 07 echo " 以下通过循环生成1-100 之间的多个随机数<br/>"; 08 for($i = 0; $i < 10; ++$i) 09 { 10 $number = (mt_rand()%100)+1; // 生成1 ~100 之间的随机数 11 echo "$number<br/>"; 12 } 13 ?>
【代码解析】代码第02行输出一个0~RAND_MAX的随机数,第04行输出一个100~999的随机数,最后使用循环输出1~100的10个随机数。代码11-3的执行结果类似图11-3所示。
图11-3 生成随机数
说明 函数rand()也可以用来生成随机数,它的用法和mt_rand()类似,这里不再重复举例。