First off, you may want to have a look at this as well
print 1 . 01;
print 1.01;
print '1' . '01';
Also, print is NOT a function. Don't use ( ) with it. You are just likely fool yourself into thinking you know what happens, when something entirely different really is happening. And remember that the difference between echo and print is that print returns true, which casts to 1 as integer.
echo print(2) + 2;
#output: 41
# print prints 4, not 2 as you might expect.
# echo prints the return value of print, which is 1.
echo print(2 + 2);
# obivously same as above
echo print 2 + 2;
# still same as above. This is what the expression should look like (if you ask me)
#but if you really want to use parenthesis, at least use them in a way that makes sense
echo (print 2 + 2);
# or, if you mean what I think you mean when you write print (2), it should actually be
echo (print 2) + 2;
# compare the above with an actual function call.
echo print_r(array(2)) + 2;
Moreover, I like the distinction between parenthesis for function calls and non function calls by inserting a space for non funciton calls.
function_call(); // parenthesis next to the function name
echo (2+2); // NOT a function call. space between parenthesis.
But it's preferable to skip parenthesis when they're not needed.