Differences between echo, echo(), print and print() in PHP

12,313

Two differences:

print has a return value (always 1), echo doesn't. Therefore print can be used as an expression.

echo accepts multiple arguments. So you may write echo $a, $b instead of echo $a . $b.

Concerning the parentheses: They are simply wrong in my eyes. They have no function at all. You could as well write echo (((((((((($a)))))))))); people usually include parentheses from ignorance, thinking that print is a function. Furthermore it increases the chance of misinterpretation. For example print("foo") && print("bar") does not print foobar, because PHP interprets this as print(("foo") && print("bar")). So bar1 would be printed, even though it looks different.

Share:
12,313
Aillyn
Author by

Aillyn

http://xkcd.com/162/

Updated on July 26, 2022

Comments

  • Aillyn
    Aillyn almost 2 years

    Possible Duplicates:
    How are echo and print different in PHP?
    Is there any difference between ‘print’ and ‘echo’ in PHP?
    What’s the difference of echo,print,print_r in PHP?

    There are several ways to print output in PHP; including but not limited to:

    echo 'Hello';
    echo ('Hello');
    print 'Hello';
    print ('Hello');
    

    Are there any differences between these four? Also, do the parentheses make any difference at all?

  • Aillyn
    Aillyn over 13 years
    I know Python is not PHP, but they banned the use of print 'something', now you always have to use print('something') with the parentheses.
  • Aillyn
    Aillyn over 13 years
    Also see: ideone.com/LUOOG
  • NikiC
    NikiC over 13 years
    No. It does make a difference. Even though it outputs the same the version with parentheses looks different. The parentheses and function like formatting make it look different. At least I would be fooled into thinking that it outputs foobar, if I didn't stop to think about it.
  • NikiC
    NikiC over 13 years
    Yes, you are right, it outputs the same thing. Maybe I didn't explain my point clearly. I'm talking about the understandability of the code, not of the functionality. The functionality doesn't change, that's correct.
  • NikiC
    NikiC over 13 years
    Though there actually is one case, there using parentheses will not only make the code less understandable, but will actually break things. If you have a function which returns by reference return($a) will not work, because it will not return a reference to $a, but the result of the expression ($a), which obviously is a value, not a reference. But this is off topic, because we're talking about print and echo ^^
  • Aillyn
    Aillyn over 13 years
    @nik Do elaborate. I can't see how it would be different
  • Aillyn
    Aillyn over 13 years
    @nik the part about references
  • NikiC
    NikiC over 13 years
    Simply see the third note on php.net/return. It is explained there.