Aller au contenu principal

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
remarque

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"
Bonne pratique - Interpolation vs concaténation

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 !
info

.= 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érateurExempleÉ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
Bonne pratique - Construire une chaîne par étapes

.= 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
attention

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


Que fait l'opérateur .= en PHP ?


Quelle est la valeur de $x après : $x = "PHP"; $x .= " 8"; ?


Quel opérateur PHP permet de concaténer deux chaînes ?


Quelle est la différence entre = et .= ?


Parmi ces opérateurs, lequel appartient à la même famille que .= ?


Que retourne : echo 'Hello' + ' World'; en PHP ?



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 boucle foreach.
  • 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>

Bonne pratique - Générer du HTML depuis PHP

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