echo
Le mot-clé "echo" en PHP permet d'afficher une ou plusieurs chaînes. Découvrez sa syntaxe et son utilisation dans cet article.
L'instruction PHP echo
echo est le moyen le plus courant d'envoyer une sortie depuis un script PHP vers le navigateur (ou la console). C'est une construction du langage, et non une véritable fonction, c'est pourquoi vous la verrez souvent utilisée sans parenthèses. Cette page couvre sa syntaxe, en quoi elle diffère de print, la balise abrégée <?= ?>, et les pièges qui font trébucher les débutants.
Si vous débutez dans l'affichage de données en PHP, il est également utile de lire PHP echo et print pour une comparaison côte à côte, ainsi que les variables PHP pour comprendre les valeurs que vous allez afficher.
Syntaxe
echo expression1, expression2, ...;- Les arguments sont séparés par des virgules.
- Comme
echoest une construction du langage, les parenthèses sont facultatives.echo "Hi";etecho("Hi");fonctionnent tous les deux — notez toutefois queecho("a", "b");est une erreur de syntaxe, car les parenthèses n'encadrent qu'un seul argument.
Sortie de base
<?php
echo "Hello World!"; // Hello World!
echo "\n"; // newline
echo "Hello", " ", "World!"; // Hello World!Passer plusieurs arguments séparés par des virgules est légèrement plus rapide que de construire une seule chaîne avec l'opérateur de concaténation (.), car PHP n'a pas à créer la chaîne assemblée en premier.
Afficher des variables
<?php
$name = "John";
$age = 30;
// Concatenation with the . operator
echo "My name is " . $name . " and I am " . $age . " years old.";Dans les chaînes entre guillemets doubles, PHP interpole également les variables directement, ce qui est souvent plus lisible que la concaténation :
<?php
$name = "John";
echo "Hello, $name!"; // Hello, John!
echo "Hello, {$name}san!"; // Hello, Johnsan! (braces clarify the variable name)Les chaînes entre guillemets simples n'interpolent pas — echo 'Hello, $name'; affiche le littéral Hello, $name. Consultez les chaînes PHP pour les règles complètes.
La balise echo abrégée <?= ?>
Lorsque vous mélangez PHP avec HTML, <?= ?> est l'abréviation de <?php echo ?>. Elle est activée par défaut en PHP et constitue la manière idiomatique d'afficher une seule valeur dans un template :
<p>Welcome, <?= $username ?>!</p>
<!-- equivalent to: -->
<p>Welcome, <?php echo $username; ?>!</p>echo vs print
Les deux produisent une sortie, mais il existe des différences :
| Fonctionnalité | echo | print |
|---|---|---|
| Arguments multiples | Oui (séparés par des virgules) | Non (un seul) |
| Valeur de retour | Aucune | Retourne toujours 1 |
| Utilisable dans les expressions | Non | Oui (ex. $ok = print "Hi";) |
| Vitesse | Légèrement plus rapide | Légèrement plus lent |
Parce que print retourne 1, il peut apparaître dans une expression ; echo ne le peut pas. Consultez l'instruction PHP print pour plus de détails.
Erreurs courantes
- Aucune valeur n'est retournée.
$x = echo "Hi";est une erreur fatale —echone peut pas être assigné ni utilisé dans des expressions. - Les parenthèses avec des virgules échouent.
echo("a", "b");est invalide ; supprimez les parenthèses :echo "a", "b";. - Échapper les entrées utilisateur. Afficher directement des données non fiables dans du HTML expose à des failles XSS. Faites-les passer par
htmlspecialchars()d'abord :echo htmlspecialchars($comment);. PHP_EOLvs"\n". Utilisez la constantePHP_EOLlorsque vous avez besoin du saut de ligne correct pour le système d'exploitation actuel (par exemple, lors de l'écriture dans la console plutôt que dans un navigateur).