str_repeat()
Статья о функции PHP str_repeat(), которая повторяет строку заданное количество раз. Синтаксис, параметры, примеры использования.
Функция PHP str_repeat() возвращает новую строку, сформированную путём повторения заданной строки указанное количество раз. Она удобна для создания повторяющихся шаблонов — разделительных линий, отступов, индикаторов прогресса или дополнения строк — без необходимости вручную писать одни и те же символы снова и снова.
В этой главе рассматриваются синтаксис, параметры, возвращаемое значение и граничные случаи, которые стоит знать, с рабочими примерами.
Синтаксис
str_repeat(string $string, int $times): stringПараметры
Функция принимает два обязательных параметра:
$string— строка для повторения. Это может быть один символ или более длинная строка.$times— количество повторений. Значение должно быть0или больше.
Возвращаемое значение
str_repeat() возвращает повторённую строку. Если $times равно 0, возвращается пустая строка (""). Передача отрицательного числа вызывает ValueError в PHP 8.0 и выше (в более ранних версиях выдавалось предупреждение и возвращалась пустая строка).
Базовый пример
Здесь строка "Hello" повторяется три раза, давая результат HelloHelloHello. Обратите внимание, что части соединяются без разделителя — str_repeat() просто конкатенирует копии.
Вывод этого кода:
HelloHelloHelloПрактическое применение
Отрисовка разделительной линии
Распространённое применение — генерация разделителя фиксированной ширины, без необходимости вводить один и тот же символ десятки раз:
<?php
echo str_repeat("=", 20) . "\n";
echo " Report\n";
echo str_repeat("=", 20) . "\n";
?>Вывод:
====================
Report
====================Отступы и дополнение строк
Повторите пробелы (или любую строку), чтобы сделать отступ на нужный уровень:
<?php
$level = 2;
$indent = str_repeat(" ", $level); // 4 spaces per level
echo $indent . "nested item\n";
?>Вывод:
nested itemЕсли вам нужно дополнить строку до фиксированной общей длины (а не повторить фиксированное количество раз), воспользуйтесь функцией str_pad() — она сама выполнит расчёт ширины.
Граничные случаи
- Нулевое количество повторений возвращает пустую строку:
<?php
var_dump(str_repeat("abc", 0)); // string(0) ""
?>- Повторение пустой строки всегда даёт пустую строку, независимо от счётчика:
<?php
var_dump(str_repeat("", 5)); // string(0) ""
?>Связанные функции
- str_pad() — дополнение строки до целевой длины.
- str_replace() — замена вхождений в строке.
- strrev() — разворот строки.
- strlen() — получение длины строки.
- implode() — объединение элементов массива в строку с разделителем.