1. ホーム
  2. php

PHP でランダムな真偽値を取得する

2023-09-25 21:56:32

質問

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);