Получить случайное значение boolean true / false в PHP

Какой был бы самый элегантный способ получить случайное логическое значение true / false в PHP?

Я могу думать:

$value = (bool)rand(0,1); 

Но действительно ли литье целого числа в boolean приносит какие-либо недостатки?

Или это «официальный» способ сделать это?

Если вы не хотите иметь булево произношение (не то, чтобы в этом что-то не так), вы можете легко сделать его логическим следующим образом:

 $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