説明
int rand()
int rand(int $min
, int $max
)
オプションの引数
min
,max
を省略してコールした場合、rand は 0 と
getrandmax の間の擬似乱数(整数)を返します。
例えば、5 から 15 まで(両端を含む)の乱数を得たい場合、
rand(5, 15)
とします。
警告
この関数が生成する値は、暗号学的にセキュアではありません。そのため、これを暗号や、戻り値を推測できないことが必須の値として使っては いけません。
暗号学的にセキュアな乱数が必要な場合は、Random\Randomizer を Random\Engine\Secure と一緒に使いましょう。簡単なユースケースの場合、random_int と random_bytes 関数が、オペレーティングシステムの CSPRNG を使った、 便利で安全な API を提供します。
注意:
(Windows のような)いくつかのプラットフォームでは、getrandmax
は 32767 と小さな値となっています。
32767 より広い範囲にしたい場合、
min
および max
を指定することで、
これより大きな範囲の乱数を生成することができます。
もしくは、
mt_rand をかわりに使用してみてください。
注意:
PHP 7.1.0 以降、rand は、
mt_rand と同じ乱数生成器を使います。
下位互換性を保持するために、mt_rand は false
を返すのと対照的に、rand は
max
が min
よりも小さいことを許します。
パラメータ
-
min
-
返す値の最小値 (デフォルトは 0)。
-
max
-
返す値の最大値 (デフォルトは getrandmax)。
戻り値
min
(あるいは 0)
から max
(あるいは getrandmax、それぞれ端点を含む)
までの間の疑似乱数値を返します。
例
例1 rand の例
<?php
echo rand(), "\n";
echo rand(), "\n";
echo rand(5, 15), "\n";
?>
注意
警告
min
から max
までの幅を mt_getrandmax の範囲内におさめる必要があります。
つまり、(max
-
min
) <= mt_getrandmax
でなければいけないということです。この範囲をこえてしまうと、
rand が返す値のランダム性が、
低品質になってしまいます。
参考
- srand
- getrandmax
- mt_rand
- random_int
- random_bytes