PHP中有一个名为array_diff_uassoc
的函数。
根据PHP Api,其功能参数为:
array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )
我正在尝试将其转换为静态方法:
public static function arrayDiffUassoc(array $array1,array $array2,...$arrays,callable $keyCompareFunc):array
{
return array_diff_uassoc($array1,$array2,...$arrays,$keyCompareFunc);
}
问题是我不能明确地使用splat运算符作为第3个参数,因为它显然必须是最后一个参数。
如何将此函数实现为静态方法,并且遵循splat运算符以及最后一个参数是可调用函数?
我正在尝试以与PHP Api
相同的方式实现此功能答案 0 :(得分:1)
不幸的是,必须将变量符指定为函数声明中的最后一个参数。否则他们就不能工作了。
您可以依靠旧学校func_get_args
,然后call_user_func_array
参见Variadics:http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list
请参阅func_get_args
:http://php.net/manual/en/function.func-get-args.php
请参阅call_user_func_array
:http://php.net/manual/en/function.call-user-func-array.php