BLOG
ブログ
  • TOP
  • BLOG
  • PHP8.3の変更点について②「getBytesFromString」

PHP8.3の変更点について②「getBytesFromString」

PHP8.3の変更点について②「getBytesFromString」

CONTENT

こんにちは、エンジニアのDです。

11月にPHP8.3がリリースされました。今回は追加された機能、変更点を抜粋してご紹介します。

【実行環境】
・PHP8.3
・Laravel 10.34.2


■Random拡張モジュールにgetBytesFromStringが追加

Random拡張モジュールはPHP8.2の時に追加された乱数生成のためのモジュールになります。今回そのモジュールに新たに追加された関数が「getBytesFromString」です。

指定した文字列からランダムで文字列を生成する関数になります。
下記のように、(a~z、0~9)までの文字列を使用し8桁でランダム生成を行うことが出来ます。仮パスワードの作成などで使用する事ができそうですね。


// 生成文字列の範囲
const STRING_PASSWORD_RANGE = 'abcdefghijklmnopqrstuvwxyz0123456789';
// 生成文字列桁数
const PASSWORD_NUMBER_OF_DIGITS = 8;

$randomizer = new \Random\Randomizer();
$password = $randomizer->getBytesFromString(STRING_PASSWORD_RANGE, PASSWORD_NUMBER_OF_DIGITS);
echo $password;


その他にも下記のような場合、文字の占める割合によって選ばれる確率も同じになります。
※ 指定した4文字のうち3文字が a 、1文字が b ということで、それぞれ約75%、約25%の確率で文字列が生成されます。

$randomizer = new \Random\Randomizer();
echo $randomizer->getBytesFromString('aaab', 10); 


■実行結果
aaabaaabaa


こういった簡単な動作確認であれば「tinker」を使うと比較的容易に行うことが出来ます。
興味ある方は是非試してみて下さい。


今回はここまで。
それでは。