zoukankan      html  css  js  c++  java
  • php匿名函数与闭包函数

    匿名函数:没有名字的函数;并没有牵扯到应用其他函数的变量问题。仅仅是没有名字

    $f=function($param){}

    闭包:A函数中嵌套着B函数,B程序中有用到A的变量,当外部函数C调用函数A时,虽然A已经执行完毕,理论上函数执行完毕,它就要被弹出栈,但是由于B要用到A,所以A的变量被保存到内存中不被销毁,我们称函数B是闭包(即函数中存在另一个函数,则可称为闭包函数)

    #定义普通函数
    function demo($callback){
        $callback('param');
    }
    #将上面的匿名函数传入普通函数的参数中
    #不管匿名函数还是普通函数在执行完之后都会销毁但是当匿名函数被传入参数中时他执行完后不会被销毁 这个就是闭包函数了
    demo($f);#等同于:
    demo(function($param){
    })
    
    #闭包函数2:
    function demo() {
      $f= function( $str ) {
        echo $str;
      };
      $f( 'some string' );
     }  
     demo();
    #闭包函数3 function demo() { $f= function( $str ) { echo $str; }; #返回匿名函数 return $f; } $f=demo(); $f('param')

    判断是否是闭包函数

            if ($f instanceof Closure) {
            }
  • 相关阅读:
    月亮,还是馅饼(2)
    月亮,还是馅饼(1)
    spread 论坛
    kaok website
    提升 .NET 程序性能的 一些 原则
    sql convert
    sql 中 MSDTC 不可用。
    判断sql执行所花的时间(精度为毫秒)
    35岁以前成功的12条黄金法则
    快速删除表中的数据
  • 原文地址:https://www.cnblogs.com/lichihua/p/11326857.html
Copyright © 2011-2022 走看看