mt_rand(min,max)
说明
如果没有提供可选参数 min
和 max,mt_rand()
返回 0
到 RAND_MAX 之间的伪随机数。
例如想要 5
到 15
(包括 5
和 15
)之间的随机数,用 mt_rand(5, 15)。
很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP
的 rand() 函数
默认使用 libc 随机数发生器。mt_rand()
函数是非正式用来替换它的。该函数用了 Mersenne
Twister
中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的
rand() 快四倍。
提示和注释
注释:自 PHP 4.2.0
起,不再需要用 srand()
或 mt_srand() 函数给随机数发生器播种,现
在已自动完成。
注释:在 3.0.7 之前的版本中,max
的含义是 range
。要在这些版本中得到和上例相同 5
到 15
的随机数,简短的例子是 mt_rand (5, 11)
。
例子
在本例中,我们会返回一些随机数:
代码如下:
<?phpecho(mt_rand());
echo
(mt_rand());
echo
(mt_rand(10,100));
?>
输出类似:
3150906288
513289678
35
注意:上面这个函数给出的随机整数,数字之外的字符是不会出来的,若想其他字符产
生,就需另自定义方法,如下所示:
代码如下:
<?php
/*
* $length:随机数字符串的长度
* $type:产生随机数的类型
* */
function
random(
$length
,
$type
= "") {
$chars
= !
$type
?
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" :
"0123456789abcdef";
$max
=
strlen
(
$chars
) - 1;
mt_srand((double)microtime() * 1000000);