PHP闭包实现

闭包是指在创建时封装周围状态的函数。即使闭包所在的环境不在了,闭包中封装的状态依旧存在。注意在php中匿名函数=闭包函数。这点要个js区分开来。

function Car ($name,$name1) {
    return function ($status,$status1) use ($name,$name1) {

            return sprintf("car %s is %s and %s is %s ",$name,$status,$name1,$status1);

    };

}
//调用函数返回一个闭包,闭包保存了之前的状态
$car = Car("bmw","byD");
//var_dump($car);die; 
//调用闭包,闭包对象实现了__invoke魔术方法,只要变量名后面有(),PHP就会查找并调用__invoke()方法
echo $car("running","stop");
//返回 car bmw is running and byD is stop
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,298评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,140评论 1 32
  • 闭包 闭包是什么? 1).闭包和匿名函数在PHP5.3中被引入。2).闭包是指在创建时封装函数周围状态的函数,即使...
    萧潇在jianshu阅读 437评论 0 3
  • 法布尔的《昆虫记》,当我决定买这本书来看的时候,你兴许认为我大概是疯了吧,这怎么是适合我看的书呢,根本不是...
    晴天天进化论阅读 395评论 0 3
  • 男女生之间的感情有两种:亲情和爱情。但是两者的区别在于,亲情式的爱情中你愿意有人替你去保护、疼爱她;在爱情中你会只...
    疯停了语顿了阅读 469评论 0 1