Comment les échos et les impressions sont-ils différents en PHP? [dupliquer]

StackOverflow https://stackoverflow.com/questions/234241

  •  04-07-2019
  •  | 
  •  

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?

Était-ce utile?

La solution

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

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

  2. Expression. print () se comporte comme une fonction dans laquelle vous pouvez faire: $ ret = print " Bonjour le monde " ; Et $ ret sera 1 . 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.

  1. Paramètre (s). La grammaire est la suivante: echo expression [, expression [, expression] ...] Mais echo (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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top