PHP获取所有参数作为数组?

2021/01/16 21:21 · php ·  · 0评论

嘿,我正在使用一个PHP函数,该函数需要多个参数并格式化它们。目前,我正在使用以下方法:

function foo($a1 = null, $a2 = null, $a3 = null, $a4 = null){
    if ($a1 !== null) doSomethingWith($a1, 1);
    if ($a2 !== null) doSomethingWith($a2, 2);
    if ($a3 !== null) doSomethingWith($a3, 3);
    if ($a4 !== null) doSomethingWith($a4, 4);
}

但是我想知道是否可以使用这样的解决方案:

function foo(params $args){
    for ($i = 0; $i < count($args); $i++)
        doSomethingWith($args[$i], $i + 1);
}

但是仍然以相同的方式调用函数,类似于C#中的params关键字或JavaScript中的arguments数组。

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);
?>

来源:http : //php.net/manual/en/functions.arguments.php#functions.variable-arg-list

或者从PHP 7.1开始,您现在可以使用称为iterable

function f(iterable $args) {
    foreach ($args as $arg) {
        // awesome stuff
    }
}

同样,可以使用它,而不是Traversable在使用接口进行迭代时使用。它也可用作生成参数的生成器。

文献资料

本文地址:http://php.askforanswer.com/phphuoqusuoyoucanshuzuoweishuzu.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!