PHP Conference Japan 2024

return

(PHP 4, PHP 5, PHP 7, PHP 8)

return 将程序控制权返回给调用模块。执行在调用模块调用的后续表达式处恢复。

如果从函数内部调用,则 return 语句会立即结束当前函数的执行,并将其参数作为函数调用的返回值。 return 还会结束 eval() 语句或脚本文件的执行。

如果从全局作用域调用,则当前脚本文件的执行将结束。如果当前脚本文件已被 includerequire,则控制权将传递回调用文件。此外,如果当前脚本文件已被 include,则传递给 return 的值将作为 include 调用的返回值。如果从主脚本文件内部调用 return,则脚本执行将结束。如果当前脚本文件由 php.ini 中的 auto_prepend_fileauto_append_file 配置选项命名,则该脚本文件的执行将结束。

有关更多信息,请参见 返回值

注意请注意,由于 return 是语言结构而不是函数,因此其参数周围的括号不是必需的,并且不建议使用。

注意如果没有提供参数,则必须省略括号,并且将返回 null。使用括号但没有参数调用 return 将导致解析错误。

从 PHP 7.1.0 开始,在声明了返回类型的函数中,不带参数的 return 语句会触发 E_COMPILE_ERROR,除非返回类型为 void,在这种情况下,带参数的 return 语句会触发该错误。

添加注释

用户贡献的笔记 2 个笔记

warhog at warhog dot net
18 年前
对于那些认为在脚本中使用 return 与使用 exit 相同的人,请注意:使用 return 只退出当前脚本的执行,exit 退出整个执行。

看看这个例子

a.php
<?php
include("b.php");
echo
"a";
?>

b.php
<?php
echo "b";
return;
?>

(执行 a.php:) 将输出 "ba"。

而 (b.php 修改后)

a.php
<?php
include("b.php");
echo
"a";
?>

b.php
<?php
echo "b";
exit;
?>

(执行 a.php:) 将输出 "b"。
J.D. Grimes
11 年前
请注意,由于 PHP 在运行文件之前会先处理它,因此即使未执行包含的文件,其中定义的任何函数仍然可用。

示例

a.php
<?php
include 'b.php';

foo();
?>

b.php
<?php
return;

function
foo() {
echo
'foo';
}
?>

执行 a.php 将输出 "foo"。
To Top