PHPで乱数を生成する

PHPで乱数を生成してみます。

乱数とは、値が定義された区間またはセットに一様に分布し、将来の値を予測することが不可能である数字のことです。ランダムな数字であるとも言えます。

■環境

・Windows10

・WampServer Version 3.2.3 64bit

・PHP Version 7.3.21

■乱数を生成する

では、早速PHPで乱数を生成してみます。

■コード

<?php
echo rand()."<br>";
echo rand(1,10)."<br>";
?>

乱数を生成する場合は、rand()関数を使用します。今回rand()関数を使用するにあたり、括弧内にパラメーター,引数はなし(オプションなし)バージョンと、括弧内に最小値(min)(左側)と最大値(max)(右側)を指定したバージョンを用意しました。最小値(min)(左側)と最大値(max)(右側)の方は、「1(最小値)」から「10(最大値)」を指定しています。

rand()関数を使用した後に、生成された乱数を出力するために、echo文を使用し出力します。

■実行

では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。

実行させてみると、括弧内にパラメーター,引数はなし(オプションなし)バージョンは、「0」から、getrandmax()の間の疑似乱数が出力されました。なお、getrandmax()は、乱数の最大値を出力します。また疑似乱数とは、乱数列のように見えるが、実際には確定的な計算によって求めている擬似乱数列による乱数です。

一方、「1(最小値)」から「10(最大値)」を指定した方は、1から10までのセットの間で、将来の値を予測することが不可能な数値が出力されました。

なお、どちらもスクリプトを実行する度に、出力される数値はランダムです。

■実験(文字列の場合)

では、ここで実験を行ってみます。今回の実験は、括弧内にパラメーター,引数に文字列(日本語)を指定するとどうなるのかというものです。

■コード

<?php
echo rand('春','冬')."<br>";
?>

rand()関数を使用し、括弧内に文字列を入れてみます。

■実行

では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。

実行させてみると、エラーが表示されました。エラーの内容を確認してみると「Warning: rand() expects parameter 1 to be int, string given in(警告:rand()は、パラメーター1がint(整数)であり、文字列が指定されていることを想定しています。)」といったことが書かれています。つまり、括弧内にパラメーター,引数には、int(整数)を指定しなければいけないということが理解できました。

コメント

タイトルとURLをコピーしました