Php – ny difference between ‘print’ and ‘echo’ in PHP?


Possible Duplicate:
How are echo and print different in PHP?


I found to my relief an exact duplicate (it wasn't showing up when I typed this question at first, I found it with … google):
Please vote with me to close this question, because it's tiring, go hunt that other poor guy a bit 😉

Is there any difference between print and echo in PHP? If so, which should I use and when? If not, why are there two keywords?


At the downvoters : please read the SO faq. SO was setup also to capture googleable questions. so you shouldn't downvote for that, this question is a valid question, answered on a lot of places and now on SO too.

Of course you can downvote for another reason, but please leave a comment in the lines of
-1 : downvoted for .. , cause for now, I'm not understanding the downvotes.

Best Solution

From this link, suggested by the PHP manual entry for the echo() function:

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

  2. Expression. print() behaves like a function in that you can do: $ret = print "Hello World"; And $ret will be

  3. 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 and XOR are lower.

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