php函数动态传入参数个数

PHP 在用户自定义函数中支持可变数量的参数列表。
在 PHP 5.6 及以上的版本中,由 … 语法实现;
在 PHP 5.5 及更早版本中,使用函数 func_num_args(),func_get_arg(),和 func_get_args() 。

在PHP 5.6和更高版本中,参数列表可能包括…符号,表示该函数接受变量数目的参数。参数将作为数组传递给给定的变量;
例如:

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4, 5);

以上例程会输出:

15

也可以用…当调用函数将数组或遍历变量或文字解压到参数列表时
例# 14使用……提供参数

<?php
function add($a, $b) {
    return $a + $b;
}

echo add(...[1, 2])."\n";

$a = [1, 2];
echo add(...$a);

以上例程会输出:

3
3

您可以在"…“后传入数组,数组会依次传入函数中。
对像类型参数,需要在指定对象后加”…",参数放在最后依次传入。

<?php
function total_intervals($unit, DateInterval ...$intervals) {
    $time = 0;
    foreach ($intervals as $interval) {
        $time += $interval->$unit;
    }
    return $time;
}

$a = new DateInterval('P1D');
$b = new DateInterval('P2D');
echo total_intervals('d', $a, $b).' days';

// This will fail, since null isn't a DateInterval object.
echo total_intervals('d', null);

以上例程会输出

3 days
PHP Fatal error:  Uncaught TypeError: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in /U

最后,您还可以通过前缀来引用变量参数。与字符(&)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值