值通过使用可选的返回语句返回。可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。更多信息见 return。 Note:
如果省略了 return,则返回值为 NULL。
return 的使用
Example #1 return 的使用
{
return$num*$num;
}
echosquare(4);// outputs '16'.?>
函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。
Example #2 返回一个数组以得到多个返回值
{
return array (0,1,2);
}
list ($zero,$one,$two) =small_numbers();?>
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符 &:
Example #3 从函数返回一个引用
{
return$someref;
}$newref=&returns_reference();?>
有关引用的更多信息, 请查看引用的解释。
返回值类型声明
PHP 7 增加了对返回值类型声明的支持。 就如 类型声明一样, 返回值类型声明将指定该函数返回值的类型。同样,返回值类型声明也与 有效类型 中可用的参数类型声明一致。
严格类型 也会影响返回值类型声明。在默认的弱模式中,如果返回值与返回值的类型不一致,则会被强制转换为返回值声明的类型。在强模式中,返回值的类型必须正确,否则将会抛出一个TypeError异常. Note:
当覆盖一个父类方法时,子类方法的返回值类型声明必须与父类一致。如果父类方法没有定义返回类型,那么子类方法可以定义任意的返回值类型声明。
范例
Example #4 基础返回值类型声明
return$a+$b;
}// Note that a float will be returned.var_dump(sum(1,2));?>
以上例程会输出: float(3)
Example #5 严格模式下执行
functionsum($a,$b):int{
return$a+$b;
}var_dump(sum(1,2));var_dump(sum(1,2.5));?>
以上例程会输出: int(3)Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5Stack trace:#0 -(9): sum(1, 2.5)#1 {main} thrown in - on line 5
Example #6 返回一个对象
functiongetC():C{
return newC;
}var_dump(getC());?>
以上例程会输出: object(C)#1 (0) {}