What is the difference between these three?
return , echo and print keyword in PHP
function theBand($abc,$bac) {
return $abc;
echo $abc;
}
<
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 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";