婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Laravel路由中不固定數量的參數如何實現?

Laravel路由中不固定數量的參數如何實現?

熱門標簽:百度地圖標注類型是酒店 商丘外呼系統好處 福建高頻外呼防封系統哪家好 隨州銷售電銷機器人公司 周口網絡回撥外呼系統 外呼系統人工客服 400電話申請辦理 全國各省地圖標注點 網絡電話400申請

前言

laravel是個好框架,我也在學習和使用,并且在公司里推廣,最近在讀 Laravel 源碼的時候,發現了一個段特別有趣的代碼,大家請看:

... 這三個點是做什么用的呢?我查了 PHP 的手冊后發現,這個東西叫做可變數量的參數列表。

這個是干啥用的呢?PHP 手冊是這么解釋的。

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

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

可變數量的參數列表,這個概念可能你會覺得很抽象。

我們可以這么來理解,我們自定義了一個函數或者某個 function,但是這個 function 的參數數量是不固定的,這也就是可變數量的參數列表。

關于可變數量的參數列表,讓我們來看兩個示例;

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

以上例程會輸出:

10

可變數量參數將被傳遞到 function 中,給定的參數變量會作為數組。

我們再看一個示例:

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

以上例程會輸出:

3

可變數量參數將被傳遞到 function 中,給定的數組會作為參數變量。

這個可變數量參數,又和 Laravel 路由有什么關系呢?

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

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

或許有可能這樣的:

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

Laravel 路由中這樣不固定數量參數,在代碼中是如何實現的呢?使用的就是可變數量參數。

// */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 作者泰勒腦路清奇啊!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

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

標簽:海南 南寧 十堰 樂山 六安 定西 迪慶 佛山

巨人網絡通訊聲明:本文標題《Laravel路由中不固定數量的參數如何實現?》,本文關鍵詞  Laravel,路由,中不,固定,數量,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel路由中不固定數量的參數如何實現?》相關的同類信息!
  • 本頁收集關于Laravel路由中不固定數量的參數如何實現?的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 喀什市| 普陀区| 二连浩特市| 云浮市| 鄂州市| 云林县| 丹凤县| 于田县| 丽江市| 邵武市| 建水县| 甘孜县| 六枝特区| 禄丰县| 曲麻莱县| 晋江市| 南投市| 溆浦县| 闻喜县| 商都县| 桐柏县| 乌兰浩特市| 得荣县| 昭通市| 乃东县| 天全县| 永兴县| 阜新| 桐庐县| 余庆县| 蕉岭县| 灵山县| 唐河县| 巴东县| 建德市| 建宁县| 陵水| 灌南县| 阳江市| 长垣县| 曲靖市|