国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

Laravel框架中常用PHP語法-匿名函數

2019-11-11 01:36:30
字體:
來源:轉載
供稿:網友

Laravel框架之所以被稱為優雅的框架,是因為他在框架中使用大量的php新語法,包括命名空間、匿名函數、反射機制、后期靜態綁定等,才使得Laravel框架顯得簡潔易擴展。

匿名函數

匿名函數(Anonymous functions)也叫閉包函數(Closure),即一個沒有指定名稱的函數,經常用作回調函數參數(callback)的值。

1、匿名函數的使用 通常我們在調用函數時,傳入的參數是數據,那么只能通過參數對函數的結果進行控制,無法控制其過程,而匿名函數的存在既可以作為參數傳給函數,也可以作為變量賦值,進行控制函數的執行過程,因此,匿名函數的引入增強了程序編寫的靈活性,可以實現更加高效的設計方案。下面給出相應的實例:

<?php$array = array(1,2,3,4);//array_walk 使用用戶自定義函數對數組中的每個元素做回調處理array_walk($array, function($value){echo $value});輸出: 1 2 3 4

匿名函數的另一個作用是可以從父作用域中繼承變量,即匿名函數在定義的時候如果需要使用作用域外的變量,可以使用use關鍵字來繼承作用域外的變量,具體實例如下:

<?phpfunction getCounter() { $i = 0; return function() use($i) { echo ++$i; };}$counter = getCounter();$counter();$counter();輸出:1 1

2、Laravel框架中的應用 在Laravel框架中大量地使用了匿名函數,如在服務提供者注冊過程中,通過將服務名稱與提供服務的匿名函數進行綁定,在使用時可以實現動態服務解析。這里所有的服務可以通俗地理解為一種資源的提供,這個字段可以是一個類的實例、一個路徑或是一個文件等,提供服務就是提供一種資源。具體實例如下:

文件 Illuminate/Routing/ControllerServicePRovider.php

<?phpnamespace Illuminate/Routing;use Illuminate/Support/ServiceProvider;class ControllerServiceProvider extends ServiceProvider{ //注冊服務提供者 public function register() { $this->app->singleton('illuminate.route.dispatcher', function($app){ return new ControllerDispatcher($app['router'], $app); }); }}

從上面例子中可以看出,這里的$this->app->singleton()函數的作用是將服務名illuminate.route.dispatcher與后面的提供服務的匿名函數綁定起來,用于服務解析,服務就是通過匿名函數實現的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南靖县| 施甸县| 邯郸市| 山阴县| 泰和县| 祁东县| 宁津县| 康保县| 长岭县| 建瓯市| 绥宁县| 邹平县| 商洛市| 临桂县| 阳信县| 双辽市| 北京市| 承德县| 深州市| 慈利县| 泰州市| 衡阳县| 手机| 安溪县| 桓台县| 吉隆县| 麦盖提县| 那曲县| 成武县| 石泉县| 伊宁县| 吉首市| 金阳县| 阿城市| 镇坪县| 禄劝| 始兴县| 通州市| 犍为县| 仪征市| 大石桥市|