Ответ 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;
Update
В PHP 7.0 вы сможете использовать random_int()
, который генерирует криптографически безопасные псевдослучайные целые числа:
$value = (bool)random_int(0, 1);