Le mot-clé "print" en PHP permet d'afficher une chaîne dans le navigateur ou un autre flux de sortie. Syntaxe et utilisation détaillées.
La construction PHP print
print envoie une chaîne vers le flux de sortie utilisé par PHP — généralement le navigateur lors de l'exécution d'une page web, ou le terminal lors de l'exécution d'un script en ligne de commande. Malgré son apparence de fonction, print est une construction du langage : elle est intégrée au langage lui-même, accepte exactement un argument et renvoie toujours l'entier 1.
Cette valeur de retour est ce qui distingue print de echo et lui permet d'être utilisée au sein d'expressions plus complexes. Ce chapitre couvre la syntaxe, les différences entre print et echo, les cas où la valeur de retour est utile, ainsi que les usages courants.
Syntaxe
print "Hello, world!";Comme print est une construction et non une fonction, les parenthèses sont optionnelles. Les deux formes sont valides et se comportent de manière identique :
print "Hello, world!"; // without parentheses
print("Hello, world!"); // with parenthesesLes parenthèses servent simplement à grouper l'argument ; elles ne transforment pas print en appel de fonction. Elle n'accepte toujours qu'un seul argument — vous ne pouvez pas passer une liste séparée par des virgules comme le permet echo.
Afficher des variables et des expressions
print évalue d'abord son argument, vous pouvez donc lui passer une variable, une chaîne concaténée ou toute expression qui se résout en une valeur similaire à une chaîne. Les variables à l'intérieur des chaînes entre guillemets doubles sont interpolées automatiquement :
<?php
$name = "John";
// Interpolation inside a double-quoted string
print "Hello, $name!" . PHP_EOL; // Hello, John!
// Concatenation with the . operator
print "Sum: " . (1 + 2) . PHP_EOL; // Sum: 3PHP_EOL est le caractère de nouvelle ligne de la plateforme — pratique dans les scripts en ligne de commande pour que chaque instruction s'affiche sur sa propre ligne. (Voir PHP Operators pour l'opérateur de concaténation . et PHP Variables pour les règles d'interpolation.)
Utiliser la valeur de retour
Chaque appel à print renvoie 1. En soi, cela peut sembler inutile, mais cela permet à print d'apparaître là où une valeur est attendue — par exemple, dans une affectation ou une expression logique :
<?php
// Assigning the result (always 1)
$result = print "Success" . PHP_EOL;
echo $result . PHP_EOL; // 1
// Using print inside a ternary expression
$loggedIn = false;
$loggedIn ? print "Welcome back" : print "Please log in";echo ne peut pas être utilisé de cette façon : $x = echo "hi"; est une erreur de syntaxe, car echo ne retourne rien. Si vous avez besoin d'afficher quelque chose dans le cadre d'une expression, utilisez print.
print vs echo
Les deux sont presque interchangeables pour un affichage simple. Les différences sont mineures mais méritent d'être connues :
| Fonctionnalité | print | echo |
|---|---|---|
| Valeur de retour | toujours 1 | aucune (ne peut pas être utilisé dans les expressions) |
| Nombre d'arguments | exactement un | un ou plusieurs (séparés par des virgules) |
| Vitesse relative | légèrement plus lente | légèrement plus rapide |
En pratique, les deux sont suffisamment rapides pour que la différence de vitesse n'ait aucune importance. Choisissez echo lorsque vous voulez afficher plusieurs valeurs à la fois ; choisissez print lorsque vous avez besoin d'une valeur de retour. Pour une comparaison plus approfondie, voir PHP echo vs print.
Afficher du HTML
Comme echo, print écrit simplement la chaîne qui lui est donnée, de sorte que le balisage HTML est transmis directement à la page :
<?php
$title = "Welcome";
print "<h1>$title</h1>";
print "<p>This paragraph was generated with <code>print</code>.</p>";Le navigateur rend le résultat sous forme de HTML ordinaire. N'oubliez pas d'échapper toutes les données fournies par l'utilisateur (par exemple avec htmlspecialchars()) avant de les afficher, afin d'éviter les attaques de type cross-site scripting.
Résumé
printest une construction du langage qui affiche une chaîne et retourne toujours1.- Les parenthèses sont optionnelles —
print "x"etprint("x")sont équivalents. - Sa valeur de retour lui permet d'être utilisée dans des expressions et des affectations, contrairement à
echo. - Utilisez
echopour plusieurs valeurs ; utilisezprintlorsque vous avez besoin de cette valeur de retour. - La sortie (y compris le HTML) est écrite telle quelle, pensez donc à échapper les données non fiables au préalable.