在 PHP 中获取随机布尔真/假
在PHP中获得随机布尔真/假的最优雅方法是什么?
我能想到:
$value = (bool)rand(0,1);
但是,将整数转换为布尔值会带来任何缺点吗?
或者这是一种“官方”的方式来做到这一点?
在PHP中获得随机布尔真/假的最优雅方法是什么?
我能想到:
$value = (bool)rand(0,1);
但是,将整数转换为布尔值会带来任何缺点吗?
或者这是一种“官方”的方式来做到这一点?
如果你不希望有一个布尔强制转换(并不是说这有什么问题),你可以很容易地把它变成一个布尔值,如下所示:
$value = rand(0,1) == 1;
基本上,如果随机值为,则为,否则。当然,值或已经充当布尔值;所以这个:1
true
false
0
1
if (rand(0, 1)) { ... }
是一个完全有效的条件,将按预期工作。
或者,您可以使用 mt_rand()
进行随机数生成(这是对 ) 的改进)。您甚至可以使用此代码:rand()
openssl_random_pseudo_bytes()
$value = ord(openssl_random_pseudo_bytes(1)) >= 0x80;
在 PHP 7.0 中,您将能够使用 random_int()
,它生成加密安全的伪随机整数:
$value = (bool)random_int(0, 1);
我使用简单的
rand(0,1) < 0.5