PHPにおける文字列の反復の方法について解説します。
同じ文字列を指定された回数で繰り返し連結したい場合や、指定の長さの文字列を生成したい場合の参考にしてください。
目次
文字列を繰り返して連結する方法
指定の文字列が繰り返し連結された文字列を生成したい場合にはstr_repeat
関数を用いるのが有効です。
$s = str_repeat('<br>', 2);
// $s == "<br><br>";
これによって、ある種の文字列の乗算や掛け算のようなことを実現することができます。
str_repeatは第一引数に指定された文字列を第二引数に指定された回数分だけ連結した文字列を返します。
str_repeat関数
文字列を初期値で埋める方法
指定の文字で指定の長さの分だけ埋められた文字列を生成したい場合には、str_repeat
関数による反復処理を行うのがベストです。
$s = str_repeat('-', 3);
// $s == '---'
これによって、同じ文字が連続した指定の長さの文字列を生成することができます。
指定の長さの文字列を初期化するための用途として利用することもできます。
str_repeat関数
str_repeat関数は文字列を反復する関数です。str_repeatの第一引数に繰り返したい文字列、第二引数に繰り返す回数を指定することができます。反復された文字列はstr_repeatの戻り値として返されます。
str_repeat(string $input, int $multiplier): string
$input // 繰り返す文字列
$multiplier // 繰り返す回数
$multiplier
が0
に指定された場合は戻り値として空文字が返されます。
str_repeat('-', 0); // ""
str_repeat('0', 4); // "0000"
str_repeat('<br>', 2); // "<br><br>"
str_repeat('= ', 3) . '='; // "= = = ="
str_repeat関数のエラーについて
str_repeat関数の第二引数に0未満の負数が指定された場合にはエラーが発生します。
str_repeat('-', -1); // Warning: str_repeat(): Second argument has to be greater than or equal to 0 in main.php on line 4
Warning: str_repeat(): Second argument has to be greater than or equal to 0
というエラーメッセージは「第二引数の値は0以上でなければならない」という趣旨の警告です。
よって、本警告が発生した場合には、第二引数の繰り返しの回数には0以上の値を指定して対処する必要があります。