str_repeat()
Articolo sulla funzione PHP str_repeat(), usata per ripetere una stringa un numero specificato di volte. Utile per pattern, separatori e padding.
La funzione PHP str_repeat() restituisce una nuova stringa ottenuta ripetendo una stringa data un numero specificato di volte. È utile per costruire pattern ripetuti come linee separatrici, indentazione, barre di avanzamento o padding, senza dover scrivere gli stessi caratteri più e più volte.
Questo capitolo tratta la sintassi, i parametri, il valore restituito e i casi limite da conoscere, con esempi eseguibili.
Sintassi
str_repeat(string $string, int $times): stringParametri
La funzione accetta due parametri obbligatori:
$string— la stringa da ripetere. Può essere un singolo carattere o una stringa più lunga.$times— quante volte ripeterla. Deve essere0o un numero maggiore.
Valore restituito
str_repeat() restituisce la stringa ripetuta. Se $times è 0, restituisce una stringa vuota (""). Passare un numero negativo genera un ValueError in PHP 8.0 e versioni successive (nelle versioni precedenti causava un avviso e restituiva una stringa vuota).
Esempio di base
Qui la stringa "Hello" viene ripetuta tre volte, producendo HelloHelloHello. Si noti che le parti vengono unite senza alcun separatore — str_repeat() concatena semplicemente le copie.
L'output di questo codice sarà:
HelloHelloHelloUtilizzi pratici
Disegnare una linea separatrice
Un utilizzo comune è generare un divisore di larghezza fissa, invece di digitare lo stesso carattere decine di volte:
<?php
echo str_repeat("=", 20) . "\n";
echo " Report\n";
echo str_repeat("=", 20) . "\n";
?>Output:
====================
Report
====================Indentazione e padding
Ripetere spazi (o qualsiasi stringa) per indentare il testo di un livello:
<?php
$level = 2;
$indent = str_repeat(" ", $level); // 4 spaces per level
echo $indent . "nested item\n";
?>Output:
nested itemSe si ha bisogno di portare una stringa a una lunghezza totale fissa (anziché ripetere un numero fisso di volte), si consiglia di usare str_pad() — gestisce il calcolo della larghezza automaticamente.
Casi limite
- Zero ripetizioni restituiscono una stringa vuota:
<?php
var_dump(str_repeat("abc", 0)); // string(0) ""
?>- Ripetere una stringa vuota restituisce sempre una stringa vuota, indipendentemente dal conteggio:
<?php
var_dump(str_repeat("", 5)); // string(0) ""
?>Funzioni correlate
- str_pad() — porta una stringa a una lunghezza target.
- str_replace() — sostituisce le occorrenze all'interno di una stringa.
- strrev() — inverte una stringa.
- strlen() — restituisce la lunghezza di una stringa.
- implode() — unisce gli elementi di un array con una stringa collante.