web-dev-qa-db-fra.com

Comment echo et print sont-ils différents en PHP?

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?

208
zuk1

De: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/4

  1. 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.

  2. 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.

  1. Paramètres). La grammaire est la suivante: 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";
277
dl__

Elles sont:

  • print prend seulement un paramètre, alors que echo peut avoir plusieurs paramètres.
  • print renvoie une valeur (1) et peut donc être utilisé comme expression.
  • echo est légèrement plus rapide.
73
seanyboy

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

9
Steven

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");
7
grilix

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)
6
Ross