PHP自5.3版本开始就可以支持匿名函数(Anonymous functions)了,也成为闭包函数(closures),闭包函数允许临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。闭包函数都是是通过 Closure 类来实现的。
举一个闭包函数的栗子
闭包函数也可以赋值给变量来使用,PHP 会自动把此种表达式转换成内置类 Closure 的对象。把一个 closure 对象赋值给一个变量的方式与普通变量赋值的语法一样,最后要加上分号结束这段语句,举一个闭包函数变量赋值的栗子
除此之外闭包函数还可以从父作用域继承变量,任何这类变量都应该用 use 语言结构传递进去。 PHP 7.1 起,不能传入superglobals、 $this 或者和参数重名的变量。经常写js的同学应该知道js的闭包特性,简单的说就是在一个函数里可以定义子函数,父函数中的变量在子函数中可以直接使用,PHP的闭包有一点区别
function func1($a){ return function() use ($a){ echo $a; }; } $a = func1("a"); $a();//输出a
下面是javascript闭包以及它的作用和应用场景
PHP闭包函数(匿名函数)的简介和例子以及与JS的对比
https://www.qwzyj.com/thread-161-1-1.html (出处: 全网资源菌)
领取专属 10元无门槛券
私享最新 技术干货