PHP 返回值
phpserver side programmingprogramming更新于 2025/8/19 11:52:17
简介
函数体中的最后一条语句可以包含 return,但并非强制要求。调用函数时,无论函数体块中的最后一条语句是否为 return,程序控制权都会在执行完函数体块中的语句后返回到调用环境。如果没有 return 语句,程序控制权将返回 NULL 值给调用者。如果 return 语句包含表达式子句,则返回表达式的值。函数只能返回一个值,该值可以是标量类型、数组或对象。返回值可以赋值给某个变量以供后续处理。
带有 return 的函数
以下示例中,函数返回作为参数传递的两个整数之和。
示例
function add($var1, $var2){
$var3= $var1+$var2 ;
return $var3;
}
$x=10;
$y=20;
$z=add($x,$y);
echo "addition=$z";
?>
输出
这将产生以下结果。−
addition=30
返回数组
函数只能返回一个值。但是,可以返回包含多个值的数组。以下示例将两个数字传递给一个函数,该函数返回包含加法、减法、乘法和除法的数组。
示例
function result($var1, $var2){
$r1=$var1+$var2;
$r2=$var1-$var2;
$r3=$var1*$var2;
$r4=$var1/$var2;
return array("add"=>$r1,"sub"=>$r2,"multiply"=>$r3,"division"=>$r4);
}
$x=10;
$y=20;
$arr=result($x,$y);
foreach ($arr as $k=>$v){
echo $k . "->" . $v . "";
}
?>
输出
这将产生以下结果。−
add->30
sub->-10
multiply->200
division->0.5
通过引用返回
正如参数可以通过引用传递一样,函数也可以通过引用返回。为此,函数名称必须以 $ 符号为前缀。此外,函数调用时还必须提供 & 符号
在以下示例中,myfunction() 包含一个静态数组。其中一个元素通过引用返回并被变量接受。然后修改变量的值,并再次调用相同的函数。函数中的数组现在应该显示其值已更改。
示例
function &myfunction(){
static $arr=[1,2,3,4,5];
echo "array elements: ";
foreach ($arr as $i){
echo "$i ";
}
echo "";
return $arr[2];
}
$var=&myfunction();
echo "returned by reference : $var";
$var=100;
$var=&myfunction();
?>
输出
这将产生以下结果。−
array elements: 1 2 3 4 5
returned by reference : 3
array elements: 1 2 100 4 5
变量 $x 和 $y 的值在 swap() 函数中互换。由于变量是通过引用传递的,因此变量在函数外部也会显示修改后的值。
返回类型提示(返回类型声明)
从 PHP 7 开始,您可以为返回的变量/对象指定类型提示,就像可以声明参数的类型一样。返回类型也可以使用所有标量类型、类和数组。
语法
//定义一个带有返回值类型提示的函数
function myfunction($arg1, $arg2): type{
..
..
return $var;
}
所有标准 PHP 数据类型(包括标量类型、数组、类/接口、可迭代对象和对象)都是在函数声明中为返回变量提供类型提示的有效类型
示例
function add($x, $y): float{
return $x+$y;
}
$var=add(5,8);
var_dump($var);
?>
输出
这将产生以下结果。−
float(13)
使用带有 strict_types=1 的声明语句将防止数据类型的强制转换
示例
declare (strict_types=1);
function add($x, $y): int{
return $x+$y;
}
$var=add(5.5,8.8);
var_dump($var);
?>
输出
现在将抛出异常,如下所示 −
PHP Fatal error: Uncaught TypeError: Return value of add() must be of the type integer, float returned
相关文章
PHP 中 For 和 Foreach 之间的区别
PHP 7 中的异常和错误
在 PHP 7 中显示数组结构和值
在 PHP 中确定 Foreach 循环中的第一次和最后一次迭代
使用 PHP 从文件夹中删除所有文件
PHP 中的枚举
PHP 中的 Double not (!!) 运算符
在 PHP 中创建匿名对象
PHP 中的 gettype() 与 PHP 8 中的 get_debug_type() 之间的区别
php 中三元运算符和 Null 合并运算符的区别
打印
下一节:PHP 用户定义函数 ❯❮ 上一节:PHP 函数参数