这篇文章主要介绍怎么实现Laravel路由中不固定数量的参数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强>前言强>
Laravel是个好框架,我也在学习和使用,并且在公司里推广,最近在读Laravel源码的时候,发现了一个段特别有趣的代码,大家请看:
…这三个点是做什么用的呢?我查了PHP的手册后发现,这个东西叫做可变数量的参数列表。
<强>这个是干啥用的呢? PHP手册是这么解释的。强>
…是用户自定义函数中支持可变数量的参数列表。
…存在于PHP 5.6及以上的版本中。在PHP 5.5及更早版本中,使用函数<代码> func_num_args() 代码>,<代码> func_get_arg() 代码>,和<代码> func_get_args() 代码>。
可变数量的参数列表,这个概念可能你会觉得很抽象。
我们可以这么来理解,我们自定义了一个函数或者某个函数,但是这个函数的参数数量是不固定的,这也就是可变数量的参数列表。
关于可变数量的参数列表,让我们来看两个示例;
& lt; PHP ? function 和(…美元数字),{ ,acc 美元;=,0; ,foreach (numbers 美元;as $ n), { 美元才能acc +=, $ n; ,} ,return acc美元; } echo 和(1,,2,,3,,4); 祝辞;
以上例程会输出:
10可变数量参数将被传递到函数中,给定的参数变量会作为数组。
我们再看一个示例:
& lt; php ? function 添加(一个美元,,b), { +,return a 美元;b美元; } echo 添加(…[1,2]) ?在
以上例程会输出:
3
可变数量参数将被传递到函数中,给定的数组会作为参数变量。
<强>这个可变数量参数,又和Laravel路由有什么关系呢? 强>
在Laravel中,我们自定义路由是非常自由的,比如是这样的:
路线::获得(& # 39;用户/{id} & # 39;,, & # 39; UsersController@filter& # 39;);//路由对应的方法 public function 过滤器($ id) { ,#代码… }
或许有可能这样的:
路线::获得(& # 39;用户/{id}/{名称}& # 39;,,& # 39;UsersController@filter& # 39;);//路由对应的方法 public function 过滤器($ id,名称) { ,#代码… }
Laravel路由中这样不固定数量参数,在代码中是如何实现的呢?使用的就是可变数量参数。
//, */供应商/Laravel/框架/src/照明/路由/ControllerDispatcher.php/* * ,* Dispatch a  request 用a given controller 以及方法。 ,* ,* @param \照亮\路由\ Route 美元路线 美元,* @param mixed 控制器 美元,* @param string 方法 ,* @return 混合 ,*/public function 调度(Route 路线,美元,控制器,美元,美元的方法) { 美元,美元parameters =,这→resolveClassMethodDependencies ( 路线→美元才能parametersWithoutNulls(),控制器,美元,美元的方法 ,); ,if (method_exists(控制器,美元,& # 39;callAction& # 39;)), { return 才能;控制器→美元callAction(方法,美元,美元参数); ,} ,return 控制器→美元{$方法}(…元素(参数)美元); }
不得不让人佩服Laravel作者泰勒脑路清奇啊!
以上是“怎么实现Laravel路由中不固定数量的参数”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!