## return
(PHP 4, PHP 5, PHP 7)
如果在一个函数中调用 **return** 语句,将立即结束此函数的执行并将它的参数作为函数的值返回。**return** 也会终止 [eval()](http://php.net/manual/zh/function.eval.php) 语句或者脚本文件的执行。
如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被 [include](http://php.net/manual/zh/function.include.php) 的或者 [require](http://php.net/manual/zh/function.require.php) 的,则控制交回调用文件。此外,如果当前脚本是被 [include](http://php.net/manual/zh/function.include.php) 的,则 **return** 的值会被当作 [include](http://php.net/manual/zh/function.include.php) 调用的返回值。如果在主脚本文件中调用 **return**,则脚本中止运行。如果当前脚本文件是在 php.ini 中的配置选项 [auto\_prepend\_file](http://php.net/manual/zh/ini.core.php#ini.auto-prepend-file) 或者 [auto\_append\_file](http://php.net/manual/zh/ini.core.php#ini.auto-append-file) 所指定的,则此脚本文件中止运行。
更多信息见[返回值](http://php.net/manual/zh/functions.returning-values.php)。
> **Note**: 注意既然 **return** 是语言结构而不是函数,因此其参数没有必要用括号将其括起来。通常都不用括号,实际上也应该不用,这样可以降低 PHP 的负担。
> **Note**: 如果没有提供参数,则一定不能用括号,此时返回 **`NULL**`。如果调用 *return* 时加上了括号却又没有参数会导致解析错误。
> **Note**: 当用引用返回值时*永远不要*使用括号,这样行不通。只能通过引用返回变量,而不是语句的结果。如果使用 *return ($a);* 时其实不是返回一个变量,而是表达式 *($a)* 的值(当然,此时该值也正是 $a 的值)。
- 序言
- 简介
- PHP是什么?
- PHP能做什么?
- 基本语法
- 类型
- boolean(布尔型)
- integer(整型)
- float(浮点型)
- string(字符串)
- array(数组)
- object(对象)
- callable(可调用)
- resource(资源)
- NULL(无类型)
- 伪类型
- 类型转换的判别
- 变量
- 基础
- 预定义变量
- 变量范围
- 可变变量
- 来自PHP之外的变量
- 常量
- 语法
- 魔术常量
- 表达式
- 运算符
- 运算符优先级
- 算术运算符
- 赋值运算符
- 位运算符
- 比较运算符
- 错误控制运算符
- 执行运算符
- 递增/递减运算符
- 逻辑运算符
- 字符串运算符
- 数组运算符
- 类型运算符
- 流程控制
- if
- else
- elseif/else if
- 流程控制的替代语法
- while
- do-whille
- for
- foreach
- break
- continue
- switch
- declare
- return
- require
- include
- require_once
- include_once
- goto
- 函数
- 用户自定义函数
- 函数的参数
- 返回值
- 可变函数
- 内部 (内置)函数
- 匿名函数
- 类与对象
- 简介
- 基本概念
- 属性
- 类的自动加载
- 构造函数
- 访问控制(可见性)