php传递可变长度参数的几种方式

1. php5.6以上版本可以使用 ... 方式

<?php

function test() {
    echo '参数个数为:' . func_num_args() . '<br>'
        . '分别为:' . implode(', ', func_get_args());
}

$args = range(1, 5);
test(...$args);

运行结果:

2. 使用 call_user_func_array() 函数

<?php

class A {
    function test1() {
        echo __FUNCTION__ . '参数个数为:' . func_num_args() . '<br>'
            . '分别为:' . implode(', ', func_get_args());
    }
}

function test2() {
    echo __FUNCTION__ . '参数个数为:' . func_num_args() . '<br>'
        . '分别为:' . implode(', ', func_get_args());
}

$args = range(1, 5);
call_user_func_array([new A, 'test1'], $args);

echo '<br><br>';

call_user_func_array('test2', $args);

运行结果:

3. 使用 eval() 函数

<?php

function test() {
    echo '参数个数为:' . func_num_args() . '<br>'
        . '分别为:' . implode(', ', func_get_args());
}

$args = range(1, 5);
eval('test(' . implode(',', $args) . ');');

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值