php函数新特性

php自7.0之前,函数类型的声明只能使用类、接口、数组和回调类型,自7.0后,已经支持所有的参数类型的声明,另外,还可以对返回类型作说明。对于可变参数个数的函数,php自7.0之后,提供一个新的操作符”…”。

函数参数类型声明

php自7.0后,已经支持int、float、string、bool类型的声明。

function fun (int $num, float $f, string $str, bool $bool)
{
  ...
}

函数返回值类型声明

自7.0后,支持函数返回值类型的声明。

function f() :string
{
   ……
}

若函数没有返回值的话,使用void

function f() :void
{
   ……
}

php7.1的版本支持可为空(null)类型,只需在返回类型前加入”?”即可。

// 返回值为string类型或null
function f() :?string
{
  ......
}

可变参数个数的函数

自7.0版本,可以使用…操作符来表示可变参数

function sum(int ...$num) :int
{
   return array_sum($num);
}

echo sum(32,46, 132);  // 210

将…$args转换为参数列表

<?php

function add(int $num1, int $num2) :int
{
   return $num1 + $num2;
}

$nums = [32,31];

echo add(...$nums);  // 63