Syntaxe Et Concatenation

Vous êtes ici : >> PHP / Syntaxe Et Concatenation
Temps d'étude : 30 min. Niveau : Moyen.
Tags : Syntaxe Et Concatenation
Fichier(s) utile(s) pour ce cours : /

Concaténation lors d'un affichage

La concaténation en PHP permet de faire suivre des informations sur la même ligne d'instruction (avec un echo par exemple).

entrainement.php
	<?php
	$x = "bonjour "; // affectation de la valeur "bonjour" dans la variable $x.
	$y = "tout le monde"; // affectation de la valeur "tout le monde" dans la variable $y.
	echo $x . " " . $y . "
"; // point de concaténation que l'on peux traduire par "suivi de". echo "$x $y
"; // même chose que la ligne d'au dessus, sans concaténation. echo "Hey ! " . $x . " " . $y; // concaténation de texte et de variables. echo "
", "Hello ", $y, "
"; // concaténation avec l'utilisation d'une virgule (la virgule et le point de concaténation sont similaires).
Explications
Ligne 2 : affectation de la valeur "bonjour" dans la variable $x.
Ligne 3 : affectation de la valeur "tout le monde" dans la variable $y.
Ligne 4 : affichage de la variable $x, suivi d'un espace, suivi de la variable $y et d'un passage à la ligne (balise br).
Ligne 5 : Même chose que la ligne 4, inscrit différement.
Ligne 6 : Affichage du texte "Hey ! ", suivi de l'affichage de la variable $x, un espace et $y.
Ligne 7 : Affichage d'un passage à la ligne, du texte "Hello ", suivi de l'affichage de la variable $y.

La concaténation peut se faire avec l'utilisation d'un point ou d'une virgule (pas de virgule dans le cas de l'instruction print).
La virgule et le point de concaténation sont donc similaires lorsque nous utilisons echo.

résultat

bonjour tout le monde

bonjour tout le monde

Hey ! bonjour tout le monde

Hello tout le monde


Concaténation lors d'une affectation

entrainement.php
	<?php
	$prenom1 = "Bruno"; // Affectation de la valeur "Bruno" sur la variable : $prenom1
	$prenom1 = "Claire"; // Affectation de la valeur "Claire" sur la variable : $prenom1. cela remplace Bruno par Claire.
	echo $prenom1 . "
"; // Affiche : Claire $prenom2 = "Nicolas"; // Affectation de la valeur "Nicolas" sur la variable : $prenom2 $prenom2 .= " Marie"; // Affectation de la valeur " Marie" sur la variable : $prenom2. Ajout SANS remplacement de la valeur précédente grâce à l'opérateur .= echo $prenom2. "
"; // Affiche : Nicolas Marie
Explications
Ligne 2 : affectation de la valeur "Bruno" dans la variable $prenom1.
Ligne 3 : affectation de la valeur "Claire" dans la variable $prenom1 (cela remplace Bruno par Claire).
Ligne 4 : affichage de la variable $prenom1, soit : Claire.
Ligne 5 : affectation de la valeur "Nicolas" dans la variable $prenom2.
Ligne 6 : affectation de la valeur "Marie" dans la variable $prenom2, avec l'utilisation de l'opérateur de concaténation lors de l'affectation ".=", cela ajoute Marie dans la variable sans pour autant retirer ou remplacer la précédente valeur "Nicolas".
Ligne 7 : Affichage de la variable $prenom2, soit Nicolas Marie.

résultat

Claire

Nicolas Marie


Nous retiendrons que pour inscrire une nouvelle valeur dans une variable (sans pour autant remplacer la valeur précédente), nous utiliserons l'opérateur .= permettant de faire une concaténation dans le contenu de la variable.

Pour autant, cela ne sera pas pratique lors de l'affichage, en effet, nous n'aurons pas la possibilité d'afficher soit Marie, soit Nicolas, les deux valeurs s'afficheront systématiquement.

Nous voyons donc que nous n'utiliserons pas une variable pour conserver plusieurs valeurs (pour ça, nous verrons les array au chapitre 12), retenons qu'il est préférable de réfléchir de la sorte :

1 variable = 1 valeur

Syntaxe : Différence entre l'utilisation des guillemets et des quotes

Voyons le code suivant :

entrainement.php
	<?php
	$jour = 'aujourd\'hui'; // utilisation des quotes avec l'anti-slash pour éviter une erreur sur lapostrophe du mot : aujourd'hui.
	$jour = "aujourd'hui"; // utilisation des guillemets
	$texte = 'bonjour'; // utilisation des quotes
	echo $texte . " tout le monde
"; // Concaténation d'une variable et de texte echo "$texte tout le monde
"; // Affichage dans des guillemets, la variable est évaluée. Pas de concaténation. echo '$texte tout le monde
'; // Affichage dans des quotes, la variable n'est pas évaluée !
Explications
Ligne 2 : affectation de la valeur aujourd'hui dans la variable $jour, nous prévoyons un anti-slash "\" pour éviter que l'apostrophe du mot aujourd'hui soit considéré par PHP comme la fin de l'affectation, ce qui n'est pas le cas et ferait une erreur php à coup sur.
Avez-vous compris à quoi servait l'anti-slash "\" ?

Ligne 3 : affectation de la valeur aujourd'hui dans la variable $jour en utilisant des guillemets, pas d'anti-slash à prévoir car pas de conflit possible sur ce coup-là.

Ligne 4 : affectation de la valeur bonjour dans la variable $texte en utilisant des quotes (cela aurait pu aussi être fait avec des guillemets).

Ligne 5 : Affichage du texte "Bonjour tout le monde", avec un point de concaténation entre la variable et le texte.

Ligne 6 : Affichage du texte "Bonjour tout le monde", sans concaténation entre la variable et le texte.
Nous pouvons donc dire qu'entre guillemets la variable est évaluée et que la concaténation n'est pas indispensable

Ligne 7 : Affichage du texte '$texte tout le monde', sans concaténation entre la variable et le texte. Cela nous montre la différence entre les guillemets et les quotes lors d'un affichage de variable.

Différence entre les guillemets et les quotes
Lors d'une affectation, il n'y a pas vraiment de différence (les développeurs utilisent plus couramment les quotes).
Lors d'un affichage en php, avec des guillemets la variable est évaluée (c'est son contenu qui s'affiche), tandis qu'en utilisant les quotes lors de ce même affichage, c'est le nom de la variable qui est affiché (variable non évaluée)

résultat

bonjour tout le monde

bonjour tout le monde

$texte tout le monde