8

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?

1
  • Why do all the 'duplicate' answers lead to 'closed as possible duplicate answers' as well? Commented Jun 13, 2012 at 18:06

1 Answer 1

1

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.

Sign up to request clarification or add additional context in comments.

8 Comments

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.