laravel - PHP函数传参 参数个数问题
本文介绍了laravel - PHP函数传参 参数个数问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在看Laravel Facades 相关代码:
public static function __callStatic($method, $args)
{
$instance = static::getFacadeRoot();
if (! $instance) {
throw new RuntimeException('A facade root has not been set.');
}
return $instance->$method(...$args);
}
最后一个 ...$args
参数写法代表不定参数个数?有什么需要注意的地方吗?
我记得之前这里的方法是用 switch
实现的:
public static function __callStatic($method, $args)
{
$instance = static::getFacadeRoot();
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);
}
}
解决方案
这里应该之前是对早期版本的php兼容而采用的写法,php中...$args
这种语法只有在 php5.6+之后才有,之前的版本并不支持。
这篇关于laravel - PHP函数传参 参数个数问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文