Possible Duplicate:
Reference: Comparing PHP's print and echo
Is there any major and fundamental difference between these two functions in PHP?
Possible Duplicate:
Reference: Comparing PHP's print and echo
Is there any major and fundamental difference between these two functions in PHP?
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.
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";
 
    
     
    
    To add to the answers above, while print can only take one parameter, it will allow for concatenation of multiple values, ie:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
This is 5 values in 1 parameter
 
    
    I think print() is slower than echo.
I like to use print() only for situations like:
 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");
As the PHP.net manual suggests, take a read of this discussion.
One major difference is that echo can take multiple parameters to output. E.g.:
echo 'foo', 'bar';   // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
If you're looking to evaluate the outcome of an output statement (as below) use print. If not, use echo.
$res = print('test');
var_dump($res); //bool(true)
 
    
    