我有没有机会推断出 PHP Closure 参数类型信息?考虑这个例子:
<?php
$foo = function(array $args)
{
echo $args['a'] . ' ' . $args['b'];
};
$bar = function($a, $b)
{
echo $a . ' ' . $b;
};
$closure = /* some condition */ $foo : $bar;
if(/* $closure accepts array? */)
{
call_user_func($closure, ['a' => 5, 'b' => 10]);
}
else
{
call_user_func($closure, 5, 10);
}
?>
我想为用户留下一些自由,以便他或她可以决定哪种方式更好地定义将在我的调度程序中注册的闭包 - 它是接受关联数组中的参数还是直接作为闭包参数。因此,dispatcher 需要推导传递的 Closure 的参数,以确定它应该以哪种方式调用这个 Closure。有任何想法吗?