print Affiche une chaîne de caractères &reftitle.description; intprint stringexpression Affiche expression. print n'est pas une fonction mais une construction du langage. Son argument est l'expression suivant le mot clé print, et n'est pas délimité par des parenthèses. La différence majeure avec echo est que print n'accepte qu'un seul argument et retourne toujours 1. &reftitle.parameters; expression L'expression à afficher. Les valeurs qui ne sont pas des chaînes de caractères seront converties en celle-ci, même si la directive strict_types est activé. &reftitle.returnvalues; Retourne 1, toujours. &reftitle.examples; Exemple avec <literal>print</literal> ]]> &reftitle.notes; Utilisation avec des parenthèses Entourer l'argument de print 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 print en lui-même. <programlisting role="php"> <![CDATA[ <?php print "hello"; // outputs "hello" print("hello"); // also outputs "hello", because ("hello") is a valid expression print(1 + 2) * 3; // outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3 // the print statement sees the whole expression as one argument if ( print("hello") && false ) { print " - inside if"; } else { print " - inside else"; } // outputs " - inside if" // the expression ("hello") && false is first evaluated, giving false // this is coerced to the empty string "" and printed // the print construct then returns 1, so code in the if block is run ?> ]]> </programlisting> </example> </para> <para> Quand <literal>print</literal> est utilisé dans une expression plus large, placer tout deux le mot clé et son argument dans les parenthèses peut être nécessaire pour obtenir le résultat attendu : </para> <para> <example> <title/> <programlisting role="php"> <![CDATA[ <?php if ( (print "hello") && false ) { print " - inside if"; } else { print " - inside else"; } // outputs "hello - inside else" // unlike the previous example, the expression (print "hello") is evaluated first // after outputting "hello", print returns 1 // since 1 && false is false, code in the else block is run print "hello " && print "world"; // outputs "world1"; print "world" is evaluated first, // then the expression "hello " && 1 is passed to the left-hand print (print "hello ") && (print "world"); // outputs "hello world"; the parentheses force the print expressions // to be evaluated before the && ?> ]]> </programlisting> </example> </para> </note> ¬e.language-construct; </refsect1> <refsect1 role="seealso"> &reftitle.seealso; <para> <simplelist> <member><function>echo</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 -->