How are echo and print different in PHP? [duplicate]

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

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

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

Leave a Comment