Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any difference between 'print' and 'echo' in PHP? [duplicate]

Tags:

php

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

UPDATE :

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?

UPDATE :

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.

like image 846
Peter Avatar asked Jun 17 '09 12:06

Peter


People also ask

Is Echo same as print?

echo and print are more or less the same. They are both used to output data to the screen. The differences are small: echo has no return value while print has a return value of 1 so it can be used in expressions. echo can take multiple parameters (although such usage is rare) while print can take one argument.

What is difference between print and Print_r in PHP?

The print and echo are both language constructs to display strings. The echo has a void return type, whereas print has a return value of 1 so it can be used in expressions. The print_r is used to display human-readable information about a variable.

Why is preferable over with Echo print in PHP?

print only takes one parameter, while echo can have multiple parameters. print returns a value (1), so can be used as an expression. echo is slightly faster.


4 Answers

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

like image 62
karim79 Avatar answered Sep 27 '22 22:09

karim79


some say echo is slightly faster than print since it has no return value. though here is someone who doesn't think the speed difference matters much... http://fabien.potencier.org/article/8/print-vs-echo-which-one-is-faster

like image 35
NJChim Avatar answered Sep 27 '22 23:09

NJChim


the answer is in the docs.

like image 43
SilentGhost Avatar answered Sep 27 '22 22:09

SilentGhost


print returns, echo does not.

And you are right, totally googleable.

like image 25
anddoutoi Avatar answered Sep 27 '22 23:09

anddoutoi