W3docs

str_repeat()

Notre article présente la fonction PHP str_repeat(), qui permet de répéter une chaîne un nombre de fois spécifié. Très utile pour générer des motifs.

La fonction PHP str_repeat() retourne une nouvelle chaîne formée en répétant une chaîne donnée un nombre de fois spécifié. Elle est pratique pour construire des motifs répétés tels que des lignes de séparation, l'indentation, des barres de progression ou du remplissage, sans avoir à écrire les mêmes caractères encore et encore.

Ce chapitre couvre la syntaxe, les paramètres, la valeur de retour et les cas limites à connaître, avec des exemples exécutables.

Syntaxe

str_repeat(string $string, int $times): string

Paramètres

La fonction prend deux paramètres obligatoires :

  • $string — la chaîne à répéter. Il peut s'agir d'un seul caractère ou d'une chaîne plus longue.
  • $times — le nombre de fois à répéter. Cette valeur doit être 0 ou supérieure.

Valeur de retour

str_repeat() retourne la chaîne répétée. Si $times vaut 0, elle retourne une chaîne vide (""). Passer un nombre négatif lève une ValueError en PHP 8.0 et versions ultérieures (dans les versions antérieures, cela déclenchait un avertissement et retournait une chaîne vide).

Exemple de base

php— editable, runs on the server

Ici, la chaîne "Hello" est répétée trois fois, produisant HelloHelloHello. Notez que les parties sont jointes sans séparateur entre elles — str_repeat() concatène simplement les copies.

Le résultat de ce code sera :

HelloHelloHello

Utilisations pratiques

Tracer une ligne de séparation

Une utilisation courante consiste à générer un séparateur d'une largeur fixe, plutôt que de taper le même caractère des dizaines de fois :

<?php
echo str_repeat("=", 20) . "\n";
echo "  Report\n";
echo str_repeat("=", 20) . "\n";
?>

Résultat :

====================
  Report
====================

Indentation et remplissage

Répétez des espaces (ou toute chaîne) pour indenter le texte d'un niveau :

<?php
$level = 2;
$indent = str_repeat("    ", $level); // 4 spaces per level
echo $indent . "nested item\n";
?>

Résultat :

        nested item

Si vous avez seulement besoin de compléter une chaîne jusqu'à une longueur totale fixe (plutôt que de répéter un nombre fixe de fois), utilisez plutôt str_pad() — elle gère le calcul de la largeur pour vous.

Cas limites

  • Zéro répétition retourne une chaîne vide :
<?php
var_dump(str_repeat("abc", 0)); // string(0) ""
?>
  • Répéter une chaîne vide produit toujours une chaîne vide, quel que soit le compteur :
<?php
var_dump(str_repeat("", 5)); // string(0) ""
?>

Fonctions associées

  • str_pad() — compléter une chaîne jusqu'à une longueur cible.
  • str_replace() — remplacer des occurrences dans une chaîne.
  • strrev() — inverser une chaîne.
  • strlen() — obtenir la longueur d'une chaîne.
  • implode() — joindre les éléments d'un tableau avec une chaîne de colle.

Pratique

Pratique
Quelle est la fonctionnalité de la fonction 'str_repeat()' en PHP ?
Quelle est la fonctionnalité de la fonction 'str_repeat()' en PHP ?
Was this page helpful?