學習Laravel中建立資料表命令引發的對閉包的學習
阿新 • • 發佈:2019-02-16
Laravel中建立資料表命令中第一個引數為資料表的名稱,第二個引數為一個閉包,此閉包會接受一個用於定義新資料表的 Blueprint
物件:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
});
什麼是閉包呢?
百度、google、知乎後,自己理解閉包就是一個程式碼+資料的塊(匿名函式),閉包執行後是一堆資料,但是這堆資料自帶了執行的方法。
上文的 function(Blueprint $table) {$table->increments('id');}
首先Blueprint 宣告 $table 是 Blueprint 這個類的,然後利用 Blueprint 類中的方法將想要注入的資料按照型別轉變成Mysql可以識別的語句,然後用 create 方法就可以將表插入資料庫了。
所以說閉包看上去是程式碼,其實是資料,或者說是資料和程式碼的結合,但其實程式碼就是一種資料