How are echo and print different in PHP?

echo, php

Solution

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

Speed. There is a difference between the two, but speed-wise it should be irrelevant which one you use. echo is marginally faster since it doesn't set a return value if you really want to get down to the nitty gritty.

Expression. `print()` behaves like a function in that you can do: `$ret = print "Hello World"`; And `$ret` will be `1`. That means that print can be used as part of a more complex expression where echo cannot. An example from the PHP Manual:

$b ? print "true" : print "false";

print is also part of the precedence table which it needs to be if it is to be used within a complex expression. It is just about at the bottom of the precedence list though. Only `,` `AND` `OR` `XOR` are lower.

- Parameter(s). The grammar is: `echo expression [, expression[, expression] ... ]` But `echo ( expression, expression )` is not valid. This would be valid: `echo ("howdy"),("partner")`; the same as: `echo "howdy","partner"`; (Putting the brackets in that simple example serves no purpose since there is no operator precedence issue with a single term like that.)

So, echo without parentheses can take multiple parameters, which get concatenated:

   echo  "and a ", 1, 2, 3;   // comma-separated without parentheses
   echo ("and a 123");        // just one parameter with parentheses

`print()` can only take one parameter:

   print ("and a 123");
   print  "and a 123";

Problem

Possible Duplicate: Reference: Comparing PHP's print and echo Is there any major and fundamental difference between these two functions in PHP?

Original source

Related problems