PHP Conference Japan 2024

gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_random随机数

警告

此函数自 PHP 7.2.0 起已弃用,自 PHP 8.0.0 起移除。强烈建议不要依赖此函数。

描述

gmp_random(int $limiter = 20): GMP

生成一个随机数。该数将在 0 和 (2 ** n) - 1 之间,其中 n 是每肢的位数乘以 limiter。如果 limiter 为负数,则生成负数。

肢是 GMP 的内部机制。肢中的位数不是静态的,可能因系统而异。通常,肢中的位数为 32 或 64,但这并非保证。

警告

此函数不会生成密码学安全的数值,绝不能用于加密目的或需要返回难以猜测的值的目的。

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

参数

limiter

限制器。

一个 GMP 对象、一个 int 或一个 string,可以解释为数字,遵循与在 gmp_init() 中使用字符串进行自动基数检测(即,当 base 等于 0 时)相同的逻辑。

返回值

一个随机的 GMP 数字。

范例

示例 #1 gmp_random() 示例

<?php
$rand1
= gmp_random(1); // 从 0 到 1 * 每肢位数的随机数
$rand2 = gmp_random(2); // 从 0 到 2 * 每肢位数的随机数

echo gmp_strval($rand1) . "\n";
echo
gmp_strval($rand2) . "\n";
?>

以上示例将输出

1915834968
8642564075890328087

添加备注

用户贡献的备注 1 条备注

1
asphp at dsgml dot com
8 年前
警告:请勿使用此函数。

请改用 gmp_random_bits() 或 gmp_random_range()。

此函数的文档和代码不匹配,无论如何此函数都非常无用。
To Top