搜尋

首頁  >  問答  >  主體

不太理解閉包查詢裡"自動全域實例化"的$query變量

閉包裡為什麼不用依賴注入?如

function(\think\db\Query $q) {

$q->where('sex', 0)->where('salary', '> ', '8000');

}

tp5.1,我這樣也能執行成功的。


#
土豆土豆2386 天前1022

全部回覆(3)我來回復

  • 亚连

    亚连2018-06-08 09:42:19

    你這是匿名函數,不是閉包

    回覆
    1
  • 土豆

    php手冊,匿名函數的定義, 第一句,“Anonymous functions, also known as closures,(匿名函數,也叫閉包。)” 手冊網址:http://php.net/manual/en/functions.anonymous.php 我知道js裡閉包的定義是「有權訪問另一個函數作用域中的變數的函數",但在php中閉包好像和匿名函數是一回事。

    土豆 · 2018-06-08 13:22:45
    亚连

    理論上閉包和匿名是不同的概念,但PHP好像把他們合在一起了,匿名就是閉包,閉包就是匿名。你可以看看這篇文章http://www.php.cn/php-weizijiaocheng-401974.html

    亚连 · 2018-06-08 15:36:17
  • 取消回覆