贴代码:
public static function __callStatic($method, $args)
{
$instance = static::getFacadeRoot();
if (! $instance) {
throw new RuntimeException('A facade root has not been set.');
}
switch (count($args)) {
case 0:
return $instance->$method();
case 1:
return $instance->$method($args[0]);
case 2:
return $instance->$method($args[0], $args[1]);
case 3:
return $instance->$method($args[0], $args[1], $args[2]);
case 4:
return $instance->$method($args[0], $args[1], $args[2], $args[3]);
default:
return call_user_func_array([$instance, $method], $args);
}
}
直接 return call_user_func_array([$instance, $method], $args); 不好吗?难道判断一下参数数量,速度快一点?
PS:我记得我以前一个同事也是这么写的,真是深得 Laravel 精髓😅,后悔没追着问为什么这么做