濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Laravel路由中不固定數(shù)量的參數(shù)如何實(shí)現(xiàn)?

Laravel路由中不固定數(shù)量的參數(shù)如何實(shí)現(xiàn)?

熱門(mén)標(biāo)簽:百度地圖標(biāo)注類(lèi)型是酒店 商丘外呼系統(tǒng)好處 福建高頻外呼防封系統(tǒng)哪家好 隨州銷(xiāo)售電銷(xiāo)機(jī)器人公司 周口網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 外呼系統(tǒng)人工客服 400電話申請(qǐng)辦理 全國(guó)各省地圖標(biāo)注點(diǎn) 網(wǎng)絡(luò)電話400申請(qǐng)

前言

laravel是個(gè)好框架,我也在學(xué)習(xí)和使用,并且在公司里推廣,最近在讀 Laravel 源碼的時(shí)候,發(fā)現(xiàn)了一個(gè)段特別有趣的代碼,大家請(qǐng)看:

... 這三個(gè)點(diǎn)是做什么用的呢?我查了 PHP 的手冊(cè)后發(fā)現(xiàn),這個(gè)東西叫做可變數(shù)量的參數(shù)列表。

這個(gè)是干啥用的呢?PHP 手冊(cè)是這么解釋的。

... 是用戶(hù)自定義函數(shù)中支持可變數(shù)量的參數(shù)列表。

... 存在于 PHP 5.6 及以上的版本中。 在 PHP 5.5 及更早版本中,使用函數(shù) func_num_args() ,func_get_arg() ,和 func_get_args() 。

可變數(shù)量的參數(shù)列表,這個(gè)概念可能你會(huì)覺(jué)得很抽象。

我們可以這么來(lái)理解,我們自定義了一個(gè)函數(shù)或者某個(gè) function,但是這個(gè) function 的參數(shù)數(shù)量是不固定的,這也就是可變數(shù)量的參數(shù)列表。

關(guān)于可變數(shù)量的參數(shù)列表,讓我們來(lái)看兩個(gè)示例;

?php
function sum(...$numbers) {
 $acc = 0;
 foreach ($numbers as $n) {
  $acc += $n;
 }
 return $acc;
}
echo sum(1, 2, 3, 4);
?>

以上例程會(huì)輸出:

10

可變數(shù)量參數(shù)將被傳遞到 function 中,給定的參數(shù)變量會(huì)作為數(shù)組。

我們?cè)倏匆粋€(gè)示例:

?php
function add($a, $b) {
 return $a + $b;
}
echo add(...[1, 2])
?>

以上例程會(huì)輸出:

3

可變數(shù)量參數(shù)將被傳遞到 function 中,給定的數(shù)組會(huì)作為參數(shù)變量。

這個(gè)可變數(shù)量參數(shù),又和 Laravel 路由有什么關(guān)系呢?

在 Laravel 中,我們自定義路由是非常自由的,比如是這樣的:

Route::get('user/{id}', 'UsersController@filter');
//路由對(duì)應(yīng)的方法
public function filter($id)
{
 # code...
}

或許有可能這樣的:

Route::get('user/{id}/{name}', 'UsersController@filter');
//路由對(duì)應(yīng)的方法
public function filter($id, $name)
{
 # code...
}

Laravel 路由中這樣不固定數(shù)量參數(shù),在代碼中是如何實(shí)現(xiàn)的呢?使用的就是可變數(shù)量參數(shù)。

// */vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
/**
 * Dispatch a request to a given controller and method.
 *
 * @param \Illuminate\Routing\Route $route
 * @param mixed $controller
 * @param string $method
 * @return mixed
 */
public function dispatch(Route $route, $controller, $method)
{
 $parameters = $this->resolveClassMethodDependencies(
  $route->parametersWithoutNulls(), $controller, $method
 );
 if (method_exists($controller, 'callAction')) {
  return $controller->callAction($method, $parameters);
 }
 return $controller->{$method}(...array_values($parameters));
}

不得不讓人佩服 Laravel 作者泰勒腦路清奇??!

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • laravel5.1框架基礎(chǔ)之路由詳解
  • 修改Laravel5.3中的路由文件與路徑
  • Laravel框架路由配置總結(jié)、設(shè)置技巧大全
  • Laravel中獲取路由參數(shù)Route Parameters的五種方法示例
  • Laravel最佳分割路由文件(routes.php)的方式
  • laravel中命名路由的使用方法
  • Laravel 5框架學(xué)習(xí)之路由、控制器和視圖簡(jiǎn)介
  • Laravel中重寫(xiě)資源路由自定義URL的實(shí)現(xiàn)方法
  • Laravel框架模板加載,分配變量及簡(jiǎn)單路由功能示例
  • Laravel路由研究之domain解決多域名問(wèn)題的方法示例
  • Laravel框架路由設(shè)置與使用示例
  • Laravel5.1 框架路由基礎(chǔ)詳解

標(biāo)簽:海南 南寧 十堰 樂(lè)山 六安 定西 迪慶 佛山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravel路由中不固定數(shù)量的參數(shù)如何實(shí)現(xiàn)?》,本文關(guān)鍵詞  Laravel,路由,中不,固定,數(shù)量,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Laravel路由中不固定數(shù)量的參數(shù)如何實(shí)現(xiàn)?》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Laravel路由中不固定數(shù)量的參數(shù)如何實(shí)現(xiàn)?的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    乐清市| 右玉县| 小金县| 井陉县| 宝山区| 晋州市| 河池市| 广元市| 长春市| 荥经县| 横峰县| 长岭县| 宣武区| 武夷山市| 彩票| 吴旗县| 郸城县| 马公市| 德惠市| 上虞市| 祁阳县| 甘孜| 中西区| 尼勒克县| 德惠市| 文登市| 德化县| 桃江县| 富宁县| 自贡市| 资源县| 凌云县| 临泽县| 阳西县| 青田县| 三原县| 仙游县| 连州市| 遂昌县| 黔西| 施秉县|