<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="https://stackoverflow.com/questions/7094118/reference-comparing-phps-print-and-echo">Reference: Comparing PHP&#39;s print and echo</a>  </p>
</blockquote>



<p>Is there any major and fundamental difference between these two functions in PHP?</p>

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