PHP 8.3 新特性 - Random 新增 getFloat 和 nexFloat 方法
hi,我是温新,一名 PHPer
PHP 8.3 中,Random 扩展增加了两个新方法:\Random\Randomizer::getFloat() 和 nextFloat() 。这两个方法用于生成随机浮点数。
Random\Randomizer::getFloat()
getFloat
用于生成一个指定范围内的随机浮点数。
public Random\Randomizer::getFloat(float $min, float $max, Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen): float
参数解释
-
$min
:生成的随机浮点数的最小值。 -
$max
:生成的随机浮点数的最大值。
参数 \Random\IntervalBoundary
是一个枚举,如下:
enum IntervalBoundary {
case ClosedOpen;
case ClosedClosed;
case OpenClosed;
case OpenOpen;
}
IntervalBoundary
其含义如下
-
IntervalBoundary::ClosedOpen
:$min 可能会返回,$max 可能不会。 -
IntervalBoundary::ClosedClosed
:$min 和 $max 都可以返回。 -
IntervalBoundary::OpenClosed
:$min 不能返回,$max 可以返回。 -
IntervalBoundary::OpenOpen
:$min 和 $max 都不能返回。
注意
-
$max
必须大于$min
参数。否则会抛出\ValueError
异常 -
$min
和$max
必须是有限的。否则会抛出\ValueError
异常
案例如下
<?php
use Random\Randomizer;
$randomizer = new Randomizer();
echo $randomizer->getFloat(0.0, 1.0) . PHP_EOL;
echo $randomizer->getFloat(10, 50) . PHP_EOL;
输出结果
0.75820450768839
23.555650059691
Random\Randomizer::nextFloat()
nextFloat()
用于生成一个大于或等于 0.0 且小于 1.0 的随机浮点数。
public Random\Randomizer::nextFloat(): float
案例
<?php
$randomizer = new \Random\Randomizer();
for ($i = 0; $i < 10; $i++) {
echo $randomizer->nextFloat() . PHP_EOL;
}
结果
0.33171132243057
0.9837437452255
0.77428565031214
0.33981816881044
0.39224912430971
0.738168247012
0.42110168197396
0.74848178132416
0.3482888387368
0.62862548523008
请登录后再评论