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()函数中互换。由于变量是通过引用传递的,因此变量也会在函数外部显示修改后的值

返回类型提示(返回类型声明)

PHP 7开始,您可以为返回的变量/对象指定类型提示,就像可以为参数声明类型一样。对于返回类型,也可以使用所有标量类型,类和数组

语法

//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

以上是 PHP返回值 的全部内容, 来源链接: utcz.com/z/335368.html

回到顶部