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): stringParamè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 être0ou 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
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 :
HelloHelloHelloUtilisations 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 itemSi 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.