美文网首页
PHP笔记之闭包

PHP笔记之闭包

作者: 青鸟evergreen | 来源:发表于2017-02-14 15:28 被阅读11次

匿名函数
在PHP5.3.0以上版本有效
也称闭包函数,可以有参数,有返回值,结尾处必须加分号

$func = function(){

};
$func();

匿名函数的一个用法,类似于闭包。

    function demos($fun){
            echo $fun();
    }
    demos(function(){
        return "@22222".'<br>';
    });

闭包
闭包的实现主要是靠匿名函数
将匿名函数在普通函数中当做参数传入,也可以被返回。这就是一个简单地闭包。
特点:
1.闭包外层是个函数
2.闭包内部都有函数
3.闭包会return内部函数
4.闭包返回的函数内部不能有return
5.执行闭包后,闭包内部变量会存在,闭包内部函数的内部变量不会存在
6.闭包函数返回时,函数内部变量处于激活状态,函数所在栈区依然保留

function demo(){
        $a = 10;
        $b = 20;
        //关键词use 使匿名函数能调用函数内部的参数,&的引用,使变量的值发生改变
        $one = function($str) use(&$a,&$b){
            echo $str."<br>";
            echo $b."<br>";
            $a++;
            echo $a."<br>";
            //内存函数不能加返回值,不然直接终止
        };
        return $one;
    }
    $var = demo();
    $var = ("what");
    $var = ("123");//通过两次调用,发现每次a的值均有变化

闭包的应用场景
1.保护函数内的变量安全。外层函数中变量只有内部函数才能访问,而无法通过其他途径访问到,因此保护了外层变量的安全性。
2.在内存中维持一个变量,外层函数中的变量一直存在于内存中,因此每次执行都会用到。

相关文章

  • PHP笔记之闭包

    匿名函数在PHP5.3.0以上版本有效也称闭包函数,可以有参数,有返回值,结尾处必须加分号 匿名函数的一个用法,类...

  • php之闭包函数(Closure)

    php闭包函数(Closure) JS闭包 js和php闭包使用和区别

  • Modern PHP : 闭包和匿名函数

    Modern PHP : 闭包和匿名函数

  • avaScript 闭包的理解

    JavaScript 学习笔记之闭包 这篇文章是我学习闭包的笔记与总结,后面会有一些例子,结合画图的形式来理解,什...

  • python函数之闭包

    目录 python函数之闭包什么是闭包python中的namespace闭包的条件闭包的优点 python函数之闭...

  • PHP闭包

    一. 闭包函数又叫做匿名函数(没有函数名称的函数). 英文closure 匿名函数常在js函数中出现,比如ajax...

  • PHP 闭包

    闭包和匿名函数在php5.3中引入,闭包是指的创建时封装周围状态的函数,即便闭包所在的环境不存在了,闭包中封装的状...

  • php闭包

    在公众号中看到闭包的概念,其实就是结合匿名函数的运用,稍微总结一下用法: 3中简单的闭包使用情况:* 在函数里定义...

  • PHP新特性之闭包、匿名函数

    闭包 闭包是什么? 1).闭包和匿名函数在PHP5.3中被引入。2).闭包是指在创建时封装函数周围状态的函数,即使...

  • PHP闭包实现

    闭包是指在创建时封装周围状态的函数。即使闭包所在的环境不在了,闭包中封装的状态依旧存在。注意在php中匿名函数=闭...

网友评论

      本文标题:PHP笔记之闭包

      本文链接:https://www.haomeiwen.com/subject/hipgittx.html