W3docs

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): string

Parametri

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 essere 0 o 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

php— editable, runs on the server

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à:

HelloHelloHello

Utilizzi 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 item

Se 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.

Esercitazione

Pratica
Qual è la funzionalità della funzione 'str_repeat()' in PHP?
Qual è la funzionalità della funzione 'str_repeat()' in PHP?
Was this page helpful?