gpt4 book ai didi

php - 替代 call_user_func_array

转载 作者:行者123 更新时间:2023-12-03 17:24:05 24 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8年前关闭。




我必须使用 call_user_func_array()在我的 PHP 脚本中。不过,它似乎非常慢。有没有其他选择?

最佳答案

使用 call_user_func_array 时性能有差异与直接调用函数相比,但它并没有那么大(大约慢 15 倍)。除非您使用它数千次,否则您不会注意到它。

要回答您的问题,您可以自己构建一个:

function call($fn, array $args = array()){

$numArgs = count($args);

if($numArgs < 1)
return $fn();

if($numArgs === 1)
return $fn($args[0]);

if($numArgs === 2)
return $fn($args[0], $args[1]);

// ...

return call_user_func_array($fn, $args);
}

还有 ReflectionFunction::invokeArgs (和 ReflectionMethod::invokeArgs ):
$reflector = new ReflectionFunction($fn);
return $reflector->invokeArgs($args);

另一种解决方案(可能是最好的)是让你的函数接受一个带有参数的数组......

关于php - 替代 call_user_func_array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com