(PHP 4, PHP 5, PHP 7, PHP 8)
rand — 产生一个随机整数
如果没有提供可选参数 min
和
max
调用 rand()
会返回 0 到 getrandmax()
之间的伪随机整数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用
rand(5, 15)
。
本函数并不会生成安全加密的值,并且不可用于加密或者要求返回值不可猜测的目的。
如果需要加密安全随机,则可以将 Random\Engine\Secure 引擎用于 Random\Randomizer。对于简单的用例,random_int() 和 random_bytes() 函数提供了操作系统的 CSPRNG 支持的方便且安全的 API。
注意: 在某些平台下(例如 Windows)getrandmax() 只有 32767。如果需要的范围大于 32767,那么指定
min
和max
参数就可以生成更大的数了,或者考虑用 mt_rand() 来替代之。
注意: 自 PHP 7.1.0 起,rand() 和 mt_rand() 使用相同的随机数生成器。为了保持向后兼容性,rand() 允许
max
小于min
,而不是像 mt_rand() 一样,返回false
。
介于 min
(或是 0)和 max
(或
getrandmax(),包含该值)之间的伪随机值。
版本 | 说明 |
---|---|
7.2.0 | rand() 已收到模偏差的 错误修复。这意味着使用特定种子生成的序列可能与 64 位机器上的 PHP 7.1.0 不同。 |
7.1.0 | rand() 成为 mt_rand() 的别名。 |
示例 #1 rand() 例子
<?php
echo rand(), "\n";
echo rand(), "\n";
echo rand(5, 15), "\n";
?>
以上示例的输出类似于:
7771 22264 11
min
max
的范围必须在 getrandmax()
范围内。即 (max
- min
) <=
getrandmax()。否则,rand() 可能会返回质量差的随机数。