数用了 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);
for($i = 0; $i < $length; $i++) {
$string .= $chars[mt_rand(0, $max)];
}
return $string;
}
$var=random(32,'haha');
echo($var);
?>
输出:
fe61e294e5f46437cb3a92b92643ead6