PHP返回值
介绍
尽管不是强制性的,但函数可以在其主体中以return作为最后一条语句。当调用一个函数时,程序的控制权在其主体块中执行语句后返回到调用环境-不管函数块中的最后一条语句是否返回。在没有retun语句的情况下,控件将NULL值返回给调用方。如果return语句包含一个expression子句,则返回expression的值。函数只能返回一个可能是标量类型,数组或对象的值。返回值可以分配给某个变量以进行后续处理
具有返回功能
在下面的示例中,函数返回作为参数传递的两个整数之和
示例
<?php
function add($var1, $var2){
$var3= $var1+$var2 ;
return $var3;
}
$x=10;
$y=20;
$z=add($x,$y);
echo "addition=$z";
?>输出结果
这将产生以下结果。-
addition=30
返回数组
函数只能返回一个值。但是,可以返回多个值的数组。下面的示例将两个数字传递给一个函数,该函数返回加法,减法,乘法和除法数组
示例
<?php
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 . "\n";
}
?>输出结果
这将产生以下结果。-
add->30 sub->-10 multiply->200 division->0.5
参考返回
正如参数可以通过引用传递一样,函数也可以通过引用返回。为此,函数名称必须以$符号为前缀。此外,在函数调用中还必须提供&符号
在下面的示例中,myfunction()具有静态数组。其元素之一通过引用返回,并被接受为变量。然后修改变量的值,并再次调用相同的函数。函数中的数组现在应该显示其值已更改。
示例
<?php
function &myfunction(){
static $arr=[1,2,3,4,5];
echo "array elements: ";
foreach ($arr as $i){
echo "$i ";
}
echo "\n";
return $arr[2];
}
$var=&myfunction();
echo "returned by reference : $var\n";
$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()函数中互换。由于变量是通过引用传递的,因此变量也会在函数外部显示修改后的值
返回类型提示(返回类型声明)
从PHP7开始,您可以为返回的变量/对象指定类型提示,就像可以为参数声明类型一样。对于返回类型,也可以使用所有标量类型,类和数组
语法
//define a function with type hints for return value
function myfunction($arg1, $arg2): type{
..
..
return $var;
}所有标准PHP数据类型(包括标量类型,数组,类/接口,可迭代和对象)都是有效类型,可在函数声明中为返回变量提供类型提示
示例
<?php
function add($x, $y): float{
return $x+$y;
}
$var=add(5,8);
var_dump($var);
?>输出结果
这将产生以下结果。-
float(13)
使用带有strict_types=1的declare语句将防止强制数据类型
示例
<?php
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
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短