If called from within a function, the return()
statement immediately ends execution of the current function, and
returns its argument as the value of the function
call. return() will also end the execution of
an eval() statement or script file.
If called from the global scope, then execution of the current
script file is ended. If the current script file was
include()ed or require()ed,
then control is passed back to the calling file. Furthermore, if
the current script file was include()ed, then
the value given to return() will be returned as
the value of the include() call. If
return() is called from within the main script
file, then script execution ends. If the current script file was
named by the auto_prepend_file or auto_append_file
configuration options in php.ini,
then that script file's execution is ended.
For more information, see Returning values.
Note that since return() is a language
construct and not a function, the parentheses surrounding its
arguments are only required if the argument
contains an expression. It is common to leave them out while returning a
variable, and you actually should as PHP has less work to do in this
You should never use parentheses around your return
variable when returning by reference, as this will not work. You can
only return variables by reference, not the result of a statement. If
you use return ($a); then you're not returning a
variable, but the result of the expression ($a)
(which is, of course, the value of $a).