繁体   English   中英

PHP 更优雅的方式来制作随机 1 或 0 二进制模式

[英]PHP more elegant way to make random 1 or 0 binary pattern

我想知道是否有一种更优雅的方式在 PHP 中创建 4 个 1 和 0 的随机组合。 我这样做的方式有效,但我很好奇是否有办法用更少的代码做同样的事情?

$b1 = rand(0,1);
$b2 = rand(0,1);
$b3 = rand(0,1);
$b4 = rand(0,1);

$randpattern = $b1.$b2.$b3.$b4;

稍微短一点:

$randpattern = substr(decbin(rand(16, 31)), -4);

rand(16,31)将生成一个介于 16 和 31 之间的随机数,它被转换为二进制数,使用decbin() ,介于 10000 en decbin()之间。最后substr()只选择最后四个字符。

当然:

str_pad(decbin(rand(0, 15)), 4, '0', STR_PAD_LEFT);
  1. 只调用rand()一次。 它会给出一个 0 到 15 之间的随机数。二进制的 15 是 1111。你也可以用二进制写 15 来表示清楚。 rand(0, 0b1111)
  2. 转换成二进制。
  3. 如果数字小于 1000,则用 0 填充它。

您可以简单地使用循环:

$randpattern = '' ;
while( strlen($randpattern) < 4 )
    $randpattern .= rand(0,1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM