簡體   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