(PHP 4, PHP 5, PHP 7, PHP 8)
rand — 生成一个随机整数
如果在不使用可选的 min
, max
参数的情况下调用 rand(),则它返回一个介于 0 和 getrandmax() 之间的伪随机整数。例如,如果您想要一个介于 5 和 15(包含)之间的随机数,请使用 rand(5, 15)
。
此函数不会生成加密安全的数值,并且 *绝不能* 用于加密目的或需要返回不可猜测的值的目的。
如果需要加密安全的随机性,则可以使用 Random\Randomizer 和 Random\Engine\Secure 引擎。对于简单的用例,random_int() 和 random_bytes() 函数提供了方便且安全的 API,它由操作系统的 CSPRNG 支持。
注意: 在某些平台(例如 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 不同。 |
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() 可能会返回质量较差的随机数。