Php 简明教程
PHP - Returning Values
PHP 函数的函数体中可以有一个可选的 return 语句作为其最后一个语句。PHP 中的大多数内置函数都返回一个特定值。例如,strlen() 函数返回字符串的长度。类似地,用户定义的函数也可以返回某个值。
函数是一个独立、完整且可重复使用的语句块。调用时,它执行某个任务,并将程序控制权送回其被调用的位置,即使没有使用 return 语句也是如此。return 语句允许它将一个值与控制权一起带回调用环境。
function foo($arg_1, $arg_2) {
statements;
return $retval;
}
函数可以返回任何类型的数据,包括标量变量、数组和对象。没有前面表达式的 return 关键字返回 null,并且等同于函数根本没有返回值。
函数返回的值可以存储在变量中,可以放入表达式中,或者如果出现在 print 或 echo 中,则显示在输出中。
$res = foo($x, $y);
它允许在程序中进一步使用函数的返回值。
Example
让我们修改前一章中的 addition() 函数,以包含一个 return 语句来返回加法结果。
<?php
function addition($first, $second) {
$result = $first+$second;
return $result;
}
$x=10;
$y=20;
$z = addition($x, $y);
echo "First number: $x Second number: $y Addition: $z". PHP_EOL;
?>
它将生成以下 output −
First number: 10 Second number: 20 Addition: 30
PHP 中的函数可以具有任意数量的参数,但只能返回一个值。该函数在首次遇到 return 语句时就返回调用环境,放弃函数体中其余的语句。
Example
如果您尝试在 return 语句中包含多个值,则会遇到以下 PHP 解析错误:
<?php
function raiseto($x) {
$sqr = $x**2;
$cub = $x**3;
return $sqr, $cub;
}
$a = 5;
$val = raiseto($a);
?>
它将生成以下 output −
PHP Parse error: syntax error, unexpected token ",", expecting ";"
Conditional Return
可以在不同的条件语句下执行多个 return 语句。
Example
在以下程序中, raiseto() 函数返回索引参数(分别是 2 或 3)的一个数的平方或立方。
<?php
function raiseto($x, $i) {
if ($i == 2) {
return $x**2;
} elseif ($i==3) {
return $x**3;
}
}
$a = 5;
$b = 2;
$val = raiseto($a, $b);
echo "$a raised to $b = $val" . PHP_EOL;
$x = 7;
$y = 3;
echo "$x raised to $y = " . raiseto($x, $y) . PHP_EOL;
?>
它将生成以下 output −
5 raised to 2 = 25
7 raised to 3 = 343