echo

(PHP 4, PHP 5, PHP 7)

echoAffiche une chaîne de caractères

Description

echo ( string $arg1 [, string $... ] ) : void

Affiche tous les paramètres. Aucune nouvelle ligne n'est ajoutée.

echo n'est pas vraiment une fonction (c'est techniquement une structure du langage), cela fait que vous n'êtes pas obligé d'utiliser des parenthèses. echo (contrairement à d'autres structures de langage) ne se comporte pas comme une fonction, il ne peut donc pas être utilisé dans le contexte d'une fonction. De même, si vous voulez passer plusieurs paramètres à echo, les paramètres ne doivent pas être entourés de parenthèses.

echo dispose aussi d'une version courte, où vous pouvez faire suivre la balise PHP ouvrante d'un signe égal (=). Avant PHP 5.4.0, cette syntaxe n'était possible que si la directive de configuration short_open_tag était activée.

J'ai <?=$foo?> foo.

La plus grosse différente avec print est que echo accepte une liste d'arguments et ne retourne aucune valeur.

Liste de paramètres

arg1

Le paramètre à afficher.

...

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec echo

<?php
echo "Bonjour le monde";

// Si vous n'utilisez pas d'autres caractères,
// vous pouvez afficher plusieurs variables
// en les séparant par des virgules
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

// Les chaînes peuvent être passées individuellement comme arguments multiples ou
// concaténées et passées comme un seul argument
echo 'Cette ''chaîne ''a été ''faite ''avec plusieurs paramètres.'chr(10);
echo 
'Cette ' 'chaîne ' 'a été ' 'faite ' 'à l\'aide de la concaténation.' "\n";

// Parce que echo() ne se comporte pas comme une fonction, le code suivant est invalide.
($some_var) ? echo 'true' : echo 'false';

// Cependant, les exemples suivants sont valides :
($some_var) ? print 'Oui' : print 'Non'// print est aussi une structure de langage,
                                         // mais il se comporte comme une fonction, donc,
                                         // il peut être utilisé dans ce contexte.

echo $some_var 'Oui''Non'// échanger la déclaration
?>

Notes

Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.

Astuce

Un bénéfice de passe par plusieurs arguments au lieu d'utiliser la concaténation dans la fonction echo concerne la priorité de l'opérateur point ".". Si plusieurs arguments sont passés, alors les parenthèses ne sont pas requises pour accroitre la priorité. :

<?php
echo "Somme : "2;
echo 
"Bonjour ", isset($name) ? $name "John Doe""!";

Avec la concaténation, l'opérateur "point" a une priorité plus élevée que l'addition et l'opérateur ternaire, et donc, les parenthèses doivent être utilisées pour un comportement correct :

<?php
echo 'Somme : ' . (2);
echo 
'Bonjour ' . (isset($name) ? $name 'John Doe') . '!';

Voir aussi