当前位置:首页 > php > 正文内容

php闭包的优缺点

phpmianshi4年前 (2017-06-02)php211

闭包函数:临时创建一个没有名称的函数,经常作为回调函数来用。

通俗的说就是:子函数可以使用父函数中的局部变量,这种行为叫做闭包。我的理解是: 闭包就是能够读取其他函数内部变量的函数。

匿名函数赋值

$demo=function($str){
   echo $str;
 }
 $demo('hello,world');

闭包可以从父作用域中继承变量,任何此类型变量都应该用use语言结构传递进去。

$message='hello';
 $example=function() use ($message){
   var_dump($message);
 };
 echo $example();



闭包的优点

能够读取函数内部的变量;

让这些变量一直存在于内存中,不会在调用结束后,被垃圾回收机制回收

闭包的缺点:

正所谓物极必反,由于闭包会使函数中的变量保存在内存中,内存消耗很大,所以不能滥用闭包,解决办法是,退出函数之前,将不使用的局部变量删除。


版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

php中global与$GLOBAL由引用产生的区别

很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然。根据官方的解释是$GLOBALS['var'] 是外部的全局变量$var本身。global $var 是外部...

Laravel神奇的服务容器

IoC 容器, laravel 的核心Laravel 的核心就是一个 IoC 容器,根据文档,称其为“服务容器”通过举例来让读者去理解什么是 IoC(控制反转) 和&nb...

PHP中const和static的区别和联系

1.const是类中的常量,类外用define定义常量2.const只可以修饰类的属性,不能修饰类的方法,static可以修饰属性,也可以修饰方法3.const和static都属于类本身,而不属于ne...

从0到1搭建TP5.1+Swoole3.5.15环境

安装首先按照Swoole官网说明安装swoole扩展,推荐新手可以直接使用pecl install swoole#会安装最新的稳定版(截至本文发布最新版本是4.0.3版本)或者源码...

PHP中跨域原理以及解决方案

1.为啥出现跨域在制定Html规则时,为了安全的考虑,一个源的脚本(网页,网站)不能与另一个源的资源进行交互,所以就引发一个词叫做“同源策略”。所谓同源(即指在同一个域),就是两个页面具有相同的协议(...

php5数组与php7数组区别

php5数组与php7数组区别

PHP5数组结构体typedef struct _hashtable {       uint n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。