(PHP 4, PHP 5, PHP 7, PHP 8)
print — Affiche une chaîne de caractères
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.
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ée.
Retourne 1, toujours.
Exemple #1 Exemple avec print
<?php
print "print does not require parentheses.";
print PHP_EOL;
// Aucune nouvelle ligne ou espace n'est ajoutée ; ci-dessous affiche "helloworld", tout sur une ligne
print "hello";
print "world";
print PHP_EOL;
print "This string spans
multiple lines. The newlines will be
output as well";
print PHP_EOL;
print "This string spans\nmultiple lines. The newlines will be\noutput as well.";
print PHP_EOL;
// L'argument peut être n'importe quelle expression qui produit une chaîne de caractères
$foo = "example";
print "foo is $foo"; // foo is example
print PHP_EOL;
$fruits = ["lemon", "orange", "banana"];
print implode(" and ", $fruits); // lemon and orange and banana
print PHP_EOL;
// Les expressions qui ne sont pas des chaînes sont converties en chaînes, même si declare(strict_types=1) est utilisé
print 6 * 7; // 42
print PHP_EOL;
// Parce que print a une valeur de retour, il peut être utilisé dans des expressions
// Le code suivant affiche "hello world"
if ( print "hello" ) {
echo " world";
}
print PHP_EOL;
// Le code suivant affiche "true"
( 1 === 1 ) ? print 'true' : print 'false';
print PHP_EOL;
?>Note: Utilisation avec des parenthèses
Entourer l'argument de
<?php
print "hello";
// affiche "hello"
print("hello");
// affiche également "hello", car ("hello") est une expression valide
print(1 + 2) * 3;
// affiche "9" ; les parenthèses permettent à 1+2 d'être évalué en premier, puis 3*3
// l'instruction print voit l'expression entière comme un seul argument
if ( print("hello") && false ) {
print " - inside if";
}
else {
print " - inside else";
}
// affiche " - inside if"
// l'expression ("hello") && false est d'abord évaluée, donnant false
// celle-ci est convertie en chaîne vide "" et affichée
// la construction print retourne alors 1, donc le code du bloc if est exécuté
?>Quand
<?php
if ( (print "hello") && false ) {
print " - inside if";
}
else {
print " - inside else";
}
// affiche "hello - inside else"
// contrairement à l'exemple précédent, l'expression (print "hello") est évaluée en premier
// après avoir affiché "hello", print retourne 1
// puisque 1 && false vaut false, le code du bloc else est exécuté
print "hello " && print "world";
// affiche "world1" ; print "world" est évalué en premier,
// puis l'expression "hello " && 1 est passée au print de gauche
(print "hello ") && (print "world");
// affiche "hello world" ; les parenthèses forcent les expressions print
// à être évaluées avant le &&
?>
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 ou arguments nommés.