Duplicate possible:
Référence: Comparaison de l'impression et de l'écho de PHP
Existe-t-il une différence majeure et fondamentale entre ces deux fonctions en PHP?
De: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/4
La vitesse. Il existe une différence entre les deux, mais en ce qui concerne la vitesse, le type de celui que vous utilisez doit être indifférent. echo est légèrement plus rapide car il ne définit pas de valeur de retour si vous voulez vraiment entrer dans le vif du sujet.
Expression. print()
se comporte comme une fonction dans laquelle vous pouvez faire: $ret = print "Hello World"
; Et $ret
sera 1
. Cela signifie que l’impression peut être utilisée dans le cadre d’une expression plus complexe où l’écho ne le peut pas. Un exemple tiré du manuel PHP:
$b ? print "true" : print "false";
print fait également partie de la table de préséance dont elle a besoin si elle doit être utilisée dans une expression complexe. Cependant, il se situe presque au bas de la liste des précédents. Seuls "," AND, OR et XOR sont inférieurs.
echo expression [, expression[, expression] ... ]
Mais echo ( expression, expression )
n'est pas valide. Ce serait valide: echo ("howdy"),("partner")
; le même que: echo "howdy","partner"
; (Mettre les crochets dans cet exemple simple ne sert à rien car il n'y a pas de problème de priorité d'opérateur avec un terme unique comme celui-ci.)Ainsi, echo sans parenthèses peut prendre plusieurs paramètres, qui sont concaténés:
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print()
ne peut prendre qu'un paramètre:
print ("and a 123");
print "and a 123";
Elles sont:
Pour ajouter aux réponses ci-dessus, bien que l’impression ne puisse prendre qu’un seul paramètre, elle permettra la concaténation de plusieurs valeurs, à savoir:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
C'est 5 valeurs en 1 paramètre
Je pense que print()
est plus lent que echo
.
J'aime utiliser print()
uniquement dans des situations telles que:
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
Comme le suggère le manuel PHP.net, lisez cette discussion .
Une différence majeure est que echo
peut prendre plusieurs paramètres à la sortie. Par exemple.:
echo 'foo', 'bar'; // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
Si vous souhaitez évaluer le résultat d'une instruction de sortie (comme ci-dessous), utilisez print
. Sinon, utilisez echo
.
$res = print('test');
var_dump($res); //bool(true)