PHP中如何深入理解匿名函数与闭包的运用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1530个文字,预计阅读时间需要7分钟。
概述+闭包和匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。匿名函数实际上就是没有名称的函数,可以给变量赋值,还能像其他PHP函数一样使用。
概述
闭包和匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。
匿名函数其实就是没有名称的函数,匿名函数可以赋值给变量,还能像其他任何PHP函数对象那样传递。不过匿名函数仍然是函数,因此可以调用,还可以传入参数,适合作为函数或方法的回调。
闭包是指在创建时封装周围状态的函数,即使闭包所在的环境的不存在了,闭包中封装的状态依然存在。
创建匿名函数
创建匿名函数很简单:
//将匿名函数赋给一个变量,通过变量名+()的形式来调用 $greet = function () { return "Hello World"; }; echo $greet();
结果打印:
Hello World
匿名函数和普通的PHP函数很像:常用的句法相同,也接受参数,而且能返回值。不过闭包没有函数名。
注:我们之所以能调用$greet变量,是因为这个变量的值是一个闭包,而且闭包对象实现了__invoke()魔术方法,只要变量名后有(),PHP就会查找并调用__invoke方法。
本文共计1530个文字,预计阅读时间需要7分钟。
概述+闭包和匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。匿名函数实际上就是没有名称的函数,可以给变量赋值,还能像其他PHP函数一样使用。
概述
闭包和匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。
匿名函数其实就是没有名称的函数,匿名函数可以赋值给变量,还能像其他任何PHP函数对象那样传递。不过匿名函数仍然是函数,因此可以调用,还可以传入参数,适合作为函数或方法的回调。
闭包是指在创建时封装周围状态的函数,即使闭包所在的环境的不存在了,闭包中封装的状态依然存在。
创建匿名函数
创建匿名函数很简单:
//将匿名函数赋给一个变量,通过变量名+()的形式来调用 $greet = function () { return "Hello World"; }; echo $greet();
结果打印:
Hello World
匿名函数和普通的PHP函数很像:常用的句法相同,也接受参数,而且能返回值。不过闭包没有函数名。
注:我们之所以能调用$greet变量,是因为这个变量的值是一个闭包,而且闭包对象实现了__invoke()魔术方法,只要变量名后有(),PHP就会查找并调用__invoke方法。

