在PHP 5.5或更早版本中,我可以将数组传递给接受无限数量参数的php函数吗?

sra*_*ner 8 php

给出这个示例现有函数(可能是在PHP5.6之前编写的);

function sum()
{
    $acc = 0;
    foreach (func_get_args() as $n) {
        $acc += $n;
    }
    return $acc;
}
Run Code Online (Sandbox Code Playgroud)

在PHP5.6中,我们可以做到这一点;

$values = array(1, 2, 3);
echo sum(...$values);
Run Code Online (Sandbox Code Playgroud)

我可以在5.6之前以类似的方式传递数组吗?

Mac*_*ity 3

PHP 在 5.6 之前的 PHP 版本中使用call_user_func_array传递可变参数

$values = array(1, 2, 3);
echo call_user_func_array('sum', $values);
Run Code Online (Sandbox Code Playgroud)

您应该注意,PHP 5.4 及更早版本始终将数组变量作为引用传递(这是我当天遇到的潜在问题)。该方法已在 5.5 中删除,不应使用,因为它自 5.3 起已弃用