给出这个示例现有函数(可能是在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之前以类似的方式传递数组吗?
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 起已弃用