La concaténation

Petite vérification
Avant de commencer, vérifiez si vous êtes capable de...
- exécuter le script ci-dessous et noter précisément le texte affiché à l'écran :
<?php$nombres = [3, 8, 12, 5, 20];$grands = array_values(array_filter($nombres, fn($n) => $n > 10));print_r($grands);
- écrire l'instruction PHP qui vérifie, avec
in_array(), si la valeur"kiwi"est présente dans le tableau$fruits, en effectuant une comparaison stricte (valeur et type) - expliquer ce qui se passe si l'on fusionne avec
array_merge()deux tableaux associatifs qui partagent une même clé, en donnant un exemple concret
📌 Réponse attendue
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 OPERATEUR= $b est équivalent à $a = $a OPERATEUR $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
📌 Astuce de pro : Assembler un grand nombre de chaînes (des milliers)
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