我正在开发一个插件系统,目前我被迫使用call_user_func_array
. 那很慢并且使用内存。
我的功能正在运行,看起来像这样:
public static function __callStatic($method, $args)
{
$plugins = self::_checkEventCache($method);
if( count($plugins) ) :
foreach( $plugins as $p ):
$tmp = call_user_func_array(array(self::$_installedPlugins[$p], $method), array(&$args));
endforeach;
endif;
self::$_current_event = $method;
}
我的问题是如何直接调用它或加快速度?我永远不会知道以后会附加多少论据。
有什么办法可以摆脱call_user_func_array
?
$tmp =
也没有在这方面工作。早些时候 - 当我不使用静态时,它返回一个值。我使用的旧代码是这样的:
$tmp = $this->_installedPlugins[$p]->{$method}($args);
if( $tmp !== NULL ){
$this->_event_result[$method] = $tmp;
}
当我使用静态类时,我现在需要得到相同的结果。
有任何想法吗?