str_repeat()
Die PHP-Funktion str_repeat() wiederholt eine Zeichenkette eine bestimmte Anzahl von Malen. Syntax, Parameter und Beispiele.
Die PHP-Funktion str_repeat() gibt eine neue Zeichenkette zurück, die durch die angegebene Wiederholung einer gegebenen Zeichenkette entsteht. Sie ist praktisch zum Erstellen von Wiederholungsmustern wie Trennlinien, Einrückungen, Fortschrittsbalken oder Auffüllzeichen, ohne dieselben Zeichen immer wieder eintippen zu müssen.
Dieses Kapitel behandelt die Syntax, die Parameter, den Rückgabewert und erwähnenswerte Grenzfälle – mit ausführbaren Beispielen.
Syntax
str_repeat(string $string, int $times): stringParameter
Die Funktion erwartet zwei Pflichtparameter:
$string— die zu wiederholende Zeichenkette. Sie kann ein einzelnes Zeichen oder eine längere Zeichenkette sein.$times— wie oft sie wiederholt werden soll. Dieser Wert muss0oder größer sein.
Rückgabewert
str_repeat() gibt die wiederholte Zeichenkette zurück. Wenn $times den Wert 0 hat, wird eine leere Zeichenkette ("") zurückgegeben. Die Übergabe einer negativen Zahl löst in PHP 8.0 und späteren Versionen einen ValueError aus (in früheren Versionen wurde eine Warnung ausgegeben und eine leere Zeichenkette zurückgegeben).
Einfaches Beispiel
Hier wird die Zeichenkette "Hello" dreimal wiederholt, was HelloHelloHello ergibt. Beachten Sie, dass die Teile ohne Trennzeichen zusammengefügt werden — str_repeat() verkettet die Kopien einfach aneinander.
Die Ausgabe dieses Codes lautet:
HelloHelloHelloPraktische Anwendungen
Trennlinie zeichnen
Eine häufige Verwendung ist das Erzeugen eines Trennzeichens mit fester Breite, anstatt dasselbe Zeichen dutzende Male einzutippen:
<?php
echo str_repeat("=", 20) . "\n";
echo " Report\n";
echo str_repeat("=", 20) . "\n";
?>Ausgabe:
====================
Report
====================Einrückung und Auffüllung
Leerzeichen (oder eine beliebige Zeichenkette) wiederholen, um Text um eine Ebene einzurücken:
<?php
$level = 2;
$indent = str_repeat(" ", $level); // 4 spaces per level
echo $indent . "nested item\n";
?>Ausgabe:
nested itemWenn Sie eine Zeichenkette auf eine bestimmte Gesamtlänge auffüllen möchten (anstatt eine feste Anzahl zu wiederholen), verwenden Sie stattdessen str_pad() — diese Funktion übernimmt die Breitenberechnung für Sie.
Grenzfälle
- Null Wiederholungen geben eine leere Zeichenkette zurück:
<?php
var_dump(str_repeat("abc", 0)); // string(0) ""
?>- Wiederholung einer leeren Zeichenkette ergibt immer eine leere Zeichenkette, unabhängig von der Anzahl:
<?php
var_dump(str_repeat("", 5)); // string(0) ""
?>Verwandte Funktionen
- str_pad() — eine Zeichenkette auf eine Ziellänge auffüllen.
- str_replace() — Vorkommen innerhalb einer Zeichenkette ersetzen.
- strrev() — eine Zeichenkette umkehren.
- strlen() — die Länge einer Zeichenkette ermitteln.
- implode() — Array-Elemente mit einer Verbindungszeichenkette zusammenfügen.