怎么实现Laravel路由中不固定数量的参数

  介绍

这篇文章主要介绍怎么实现Laravel路由中不固定数量的参数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<强>前言

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路由中不固定数量的参数”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

怎么实现Laravel路由中不固定数量的参数