Le point-égal .=
Notions théoriques
La concaténation de chaînes (.)
En PHP, l'opérateur . permet de coller deux chaînes de caractères bout à bout. C'est la concaténation.
$prenom = "Alice";
$nom = "Martin";
$nomComplet = $prenom . " " . $nom;
echo $nomComplet; // Alice Martin
En PHP, la concaténation de chaînes se fait avec le point . mais pas avec + comme dans beaucoup d'autres langages (JavaScript, Python…).
echo "Hello" + " World"; // ❌ PHP : résultat numérique (0)
echo "Hello" . " World"; // ✅ PHP : "Hello World"
Pour insérer une variable dans une chaîne, l'interpolation dans une chaîne à guillemets doubles est souvent plus lisible que la concaténation :
// Concaténation :
echo "Bonjour " . $prenom . " !";
// Interpolation (préférable pour les cas simples) :
echo "Bonjour $prenom !";
L'opérateur point-égal (.=)
L'opérateur .= est un raccourci pour concaténer et affecter en une seule opération. Il ajoute une chaîne à la suite de la variable existante.
$message = "Bonjour";
$message .= " Alice";
$message .= " !";
echo $message; // Bonjour Alice !
C'est équivalent à :
$message = "Bonjour";
$message = $message . " Alice";
$message = $message . " !";
echo $message; // Bonjour Alice !
.= fait partie d'une famille d'opérateurs d'affectation composés qui suivent tous le même principe $a OP= $b ≡ $a = $a OP $b :
| Opérateur | Exemple | Équivalent |
|---|---|---|
.= | $s .= "!" | $s = $s . "!" |
+= | $n += 5 | $n = $n + 5 |
-= | $n -= 3 | $n = $n - 3 |
*= | $n *= 2 | $n = $n * 2 |
/= | $n /= 4 | $n = $n / 4 |
%= | $n %= 3 | $n = $n % 3 |
.= est particulièrement utile pour construire progressivement une chaîne complexe (HTML, CSV, requête SQL…) en ajoutant des blocs les uns après les autres plutôt que de tout écrire d'une seule ligne.
Utilisation dans une boucle
.= prend tout son intérêt dans une boucle pour assembler un résultat à partir d'une liste :
$fruits = ["pomme", "banane", "cerise"];
$liste = "";
foreach ($fruits as $fruit) {
$liste .= "- " . $fruit . "\n";
}
echo $liste;
// - pomme
// - banane
// - cerise
Performance : pour assembler un grand nombre de chaînes (des milliers), accumuler dans un tableau puis utiliser implode() est plus efficace que de répéter .=, car PHP doit recréer la chaîne entière à chaque itération.
// ✅ Préférable pour de grandes listes :
$morceaux = [];
foreach ($items as $item) {
$morceaux[] = $item;
}
$resultat = implode(', ', $morceaux);
Exemple pratique
<?php
$etudiant = "Sophie";
$note = 17;
// Construction d'un bulletin par étapes
$bulletin = "=== Bulletin scolaire ===\n";
$bulletin .= "Élève : " . $etudiant . "\n";
$bulletin .= "Note : " . $note . "/20\n";
$bulletin .= "Mention : " . ($note >= 16 ? "Très bien" : "Bien") . "\n";
echo $bulletin;
Résultat :
=== Bulletin scolaire ===
Élève : Sophie
Note : 17/20
Mention : Très bien
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Génération d'une liste HTML d'articles
Dans ce TP, vous allez créer un script PHP qui génère dynamiquement une page HTML à partir d'un tableau de données, en utilisant .= pour construire la chaîne HTML étape par étape.
Objectifs du TP
- Utiliser
.=pour construire progressivement une chaîne HTML. - Combiner
.=avec une boucleforeach. - Générer du HTML valide depuis PHP.
Étape 1 — Créer le répertoire et le fichier
mkdir tp_point_egal
cd tp_point_egal
touch articles.php
Étape 2 — Initialiser les données et la chaîne HTML
Ouvrez articles.php et déclarez le tableau d'articles ainsi que la variable HTML de départ :
<?php
$articles = [
['titre' => 'Introduction à PHP', 'auteur' => 'Alice', 'note' => 4],
['titre' => 'Les tableaux en PHP', 'auteur' => 'Bob', 'note' => 5],
['titre' => 'Les fonctions en PHP', 'auteur' => 'Carol', 'note' => 3],
['titre' => 'POO en PHP', 'auteur' => 'David', 'note' => 5],
];
$html = "";
Étape 3 — Ouvrir la structure HTML
Avant la boucle, initialisez $html avec l'en-tête de la page :
$html = "<!DOCTYPE html>\n";
$html .= "<html lang='fr'>\n";
$html .= "<head><meta charset='UTF-8'><title>Articles</title></head>\n";
$html .= "<body>\n";
$html .= "<h1>Liste des articles</h1>\n";
$html .= "<ul>\n";
Étape 4 — Ajouter les articles dans une boucle
Parcourez le tableau $articles et ajoutez un <li> pour chaque article avec .= :
Étape 5 — Fermer la structure HTML
Fermez la liste et les balises de fin de page :
Étape 6 — Afficher la page générée
Étape 7 — Exécuter le script
php articles.php
Résultat attendu
<!DOCTYPE html>
<html lang='fr'>
<head><meta charset='UTF-8'><title>Articles</title></head>
<body>
<h1>Liste des articles</h1>
<ul>
<li><strong>Introduction à PHP</strong> — Alice (4/5)</li>
<li><strong>Les tableaux en PHP</strong> — Bob (5/5)</li>
<li><strong>Les fonctions en PHP</strong> — Carol (3/5)</li>
<li><strong>POO en PHP</strong> — David (5/5)</li>
</ul>
</body>
</html>
Préférer construire toute la chaîne HTML dans une variable puis l'afficher d'un coup avec echo $html; plutôt que de multiplier les echo intercalés dans du code PHP. Cela facilite la lecture, le débogage, et ouvre la porte à la mise en cache ou à l'écriture dans un fichier.
Une solution
Vous devez être connecté pour voir le contenu.