How are echo and print different 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 and 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";
    

    They are:

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

  • 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

    链接地址: http://www.djcxy.com/p/57578.html

    上一篇: PHP中的return,echo和print关键字之间的区别

    下一篇: PHP中的echo和print有什么不同?