W3docs

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 и выше (в более ранних версиях выдавалось предупреждение и возвращалась пустая строка).

Базовый пример

php— editable, runs on the server

Здесь строка "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() — объединение элементов массива в строку с разделителем.

Практика

Практика
Каков функционал функции 'str_repeat()' в PHP?
Каков функционал функции 'str_repeat()' в PHP?
Was this page helpful?