搜索

首页  >  问答  >  正文

不太理解闭包查询里"自动全局实例化"的$query变量

闭包里为什么不用依赖注入呢?如

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

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

}

tp5.1,我这样也能执行成功的。


土豆土豆2386 天前1023

全部回复(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
  • 取消回复