如何实现Laravel路由中的变参数数?
序
Laravel是一个很好的框架。我也在学习和使用它,并在公司推广它。最近在阅读Laravel源代码的时候,发现了一个特别有趣的代码。请参见:
.这三点是为了什么?查了一下PHP手册,发现这个东西叫变号参数表。
这是干什么用的?这就是PHP手册的解释。
.是支持用户定义函数中的变量的参数列表。
.存在于PHP 5.6及以上版本中。在PHP 5.5及更早版本中,使用了func_num_args(),func_get_arg(),以及func_get_args()函数。
可变数量的参数列表,这个概念对你来说似乎很抽象。
我们可以理解为我们定义了一个函数或者某个函数,但是这个函数的参数个数不是固定的,是一个可变个数的参数表。
关于参数列表的可变数量,我们来看两个例子;
?phpfunction sum(.$ numbers){ $ ACC=0;foreach($数字为$ n){ $ ACC=$ n;}返回$ acc}回声和(1,2,3,4);上述例行输出:
10
可变数量的参数将被传递到函数中,并且给定的参数变量将被用作数组。
让我们看另一个例子:
?phpfunction add($a,$b) { return $a,$ b;}回声添加(.[1, 2])?上述例行输出:
三
可变数量的参数将被传递给函数,给定的数组将被用作参数变量。
这个变号参数和Laravel路由有什么关系?
在Laravel,我们的定制路由非常免费,例如:
Route:get('user/{id} ','[email protected]');//路由对应的方法,公共函数过滤器($ id) {# code.},可能是这样的:
route : get(' user/{ id }/{ name } ','[email protected]');//路由公共函数过滤器对应的方法如何($ ID,$ name) {# code.}代码中实现的Laravel路由参数数量如此不确定?使用可变数量参数。
//*/vendor/laravel/framework/src/light/Routing/controller dispatcher . PHP/* * *向给定的控制器和方法发送请求。* * @ param \ lighting \ Routing \ Routing $ Route * @ param mixed $controller * @ param string $ method * @ return mixed */public function dispatch(Route $ Route,$controller,$ method){ $ parameters=$ this-resolveclasmethod dependencies($ Route-parameters swithoutnulls(),$ controller,$ method);if (method_exists($controller,' callAction '){ return $ controller-callAction($ method,$ parameters);}返回$controller-{$method}(.array _ values($ parameters));}不得不佩服Laravel的作者泰勒头脑清晰!
摘要
以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。
版权声明:如何实现Laravel路由中的变参数数?是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。