PHP Conference Japan 2024

rand

(PHP 4, PHP 5, PHP 7, PHP 8)

rand生成一个随机整数

描述

rand(): int
rand(int $min, int $max): int

如果在不使用可选的 min, max 参数的情况下调用 rand(),则它返回一个介于 0 和 getrandmax() 之间的伪随机整数。例如,如果您想要一个介于 5 和 15(包含)之间的随机数,请使用 rand(5, 15)

警告

此函数不会生成加密安全的数值,并且 *绝不能* 用于加密目的或需要返回不可猜测的值的目的。

如果需要加密安全的随机性,则可以使用 Random\RandomizerRandom\Engine\Secure 引擎。对于简单的用例,random_int()random_bytes() 函数提供了方便且安全的 API,它由操作系统的 CSPRNG 支持。

注意: 在某些平台(例如 Windows)上,getrandmax() 仅为 32767。如果您需要大于 32767 的范围,则指定 minmax 将允许您创建大于此范围的范围,或者考虑改用 mt_rand()

注意: 从 PHP 7.1.0 开始,rand() 使用与 mt_rand() 相同的随机数生成器。为了保持向后兼容性,rand() 允许 max 小于 min,而不是像 mt_rand() 一样返回 false

参数

min

要返回的最小值(默认值:0)

max

要返回的最大值(默认值:getrandmax()

返回值

一个介于 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() 可能会返回质量较差的随机数。

参见

添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top