diference between return , echo and print keyword in PHP
return
is a language construct used to exit a function and give a value to the caller of the function.
echo
and print
are both language constructs that output strings. The main difference is that echo can take multiple arguments separated by commas, but print accepts only a single argument.
return
is used when a function has to return a value.
please see HERE
echo
and print
are very similar however echo
is faster as it does not return a value.
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 thatprint
can be used as part of a more complex expression whereecho
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
andXOR
are lower.Parameter(s). The grammar is:
echo expression [, expression[, expression] ... ]
. Butecho ( 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";