echo Affiche une chaîne de caractères &reftitle.description; voidecho stringexpressions Affiche une ou plusieurs expressions, sans espaces ou nouvelle ligne additionnelle. echo n'est pas une fonction mais une construction du langage. Ses arguments sont une liste d'expressions suivant le mot clé echo, séparés par des virgules, et non délimités par des parenthèses. Contrairement à d'autres constructions du langage, echo n'a pas de valeur de retour, elle ne peut donc pas être utilisée dans le contexte d'une expression. echo dispose aussi d'une syntaxe courte, où vous pouvez faire suivre immédiatement la balise PHP ouvrante d'un signe égal (=). Cette syntaxe est disponible même si la directive de configuration est désactivée. foo. ]]> La plus grosse différence avec print est que echo accepte plusieurs arguments et ne retourne aucune valeur. &reftitle.parameters; expressions Une ou plusieurs expressions de chaînes de caractères à afficher, séparées par des virgules. Les valeurs qui ne sont pas des chaînes de caractères seront converties en chaînes de caractères, même si la directive strict_types est activée. &reftitle.returnvalues; &return.void; &reftitle.examples; Exemple avec <literal>echo</literal> ]]> &reftitle.notes; ¬e.language-construct; Utilisation avec les parenthèses Entourer un seul argument de echo avec des parenthèses ne lèvera pas une erreur de syntaxe, et produit une syntaxe ressemblant à un appel normal de fonction. Néanmoins, ceci peut être trompeur, car les parenthèses font en réalité partie de l'expression qui est en cours d'affichage, et non partie de la syntaxe de echo en lui-même. <programlisting role="php"> <![CDATA[ <?php echo "hello"; // outputs "hello" echo("hello"); // also outputs "hello", because ("hello") is a valid expression echo(1 + 2) * 3; // outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3 // the echo statement sees the whole expression as one argument echo "hello", " world"; // outputs "hello world" echo("hello"), (" world"); // outputs "hello world"; the parentheses are part of each expression echo("hello", " world"); // Throws a Parse Error because ("hello", " world") is not a valid expression ?> ]]> </programlisting> </example> </para> </note> <tip> <para> Passer plusieurs arguments à <literal>echo</literal> permet d'éviter des complications qui apparaissent à cause de la précédence de l'opération de concaténation en PHP. Par exemple, l'opérateur de concatenation a une précédence supérieure à l'opérateur ternaire, et antérieurement à PHP 8.0.0, avait la même précédence que l'addition et la soustraction : </para> <programlisting role="php"> <![CDATA[ <?php // Below, the expression 'Hello ' . isset($name) is evaluated first, // and is always true, so the argument to echo is always $name echo 'Hello ' . isset($name) ? $name : 'John Doe' . '!'; // The intended behaviour requires additional parentheses echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!'; // In PHP prior to 8.0.0, the below outputs "2", rather than "Sum: 3" echo 'Sum: ' . 1 + 2; // Again, adding parentheses ensures the intended order of evaluation echo 'Sum: ' . (1 + 2); ]]> </programlisting> <para> Si plusieurs arguments sont fournis, alors les parenthèses ne seront pas requises pour augmenter la précédence, car chaque expression est séparé : </para> <programlisting role="php"> <![CDATA[ <?php echo "Hello ", isset($name) ? $name : "John Doe", "!"; echo "Sum: ", 1 + 2; ]]> </programlisting> </tip> </refsect1> <refsect1 role="seealso"> &reftitle.seealso; <para> <simplelist> <member><function>print</function></member> <member><function>printf</function></member> <member><function>flush</function></member> <member><link linkend="language.types.string">Manière de spécifié des chaînes littérales</link></member> </simplelist> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"~/.phpdoc/manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->