Comment les échos et les impressions sont-ils différents en PHP? [dupliquer]
Question
Double 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?
La solution
De: http: / /web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
-
Vitesse. Il y a une différence entre les deux, mais en termes de vitesse devrait être sans importance celui que vous utilisez. l'écho est légèrement plus rapide car il ne définit pas une valeur de retour si vous voulez vraiment descendre à la Nitty Gritty.
-
Expression.
print ()
se comporte comme une fonction dans laquelle vous pouvez faire:$ ret = print " Bonjour le monde "
; Et$ ret
sera1
. Cela signifie que l'impression peut être utilisé dans le cadre d'une expression plus complexe où écho ne 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é dans une expression complexe. C'est à peu près au bas de la liste de priorité cependant. Seulement ", " AND, OR et XOR sont inférieurs.
- Paramètre (s). La grammaire est la suivante:
echo expression [, expression [, expression] ...]
Maisecho (expression, expression)
n'est pas valide. Ce serait valide:echo (& how; & howdy "), (" partner ")
; le même que:echo " howdy ", " partner "
; (Mettre les crochets dans cet exemple simple sert inutile car il n'y a pas de problème de priorité d'opérateur avec un seul terme comme ça.)
Ainsi, un écho sans parenthèses peut prendre plusieurs paramètres, ce qui 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";
Autres conseils
Ils sont:
- print prend seulement un paramètre, alors que echo peut avoir plusieurs paramètres.
- print renvoie une valeur (1), il peut donc être utilisé comme expression.
- echo est légèrement plus rapide.
Pour ajouter aux réponses ci-dessus, alors que l’impression ne peut prendre qu’un paramètre, elle permet la concaténation de plusieurs valeurs, c.-à-d.:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
Il s’agit de 5 valeurs dans 1 paramètre
Je pense que print ()
est plus lent que echo
.
J'aime utiliser print ()
uniquement dans les cas suivants:
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. 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)