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) {
            }
  • 相关阅读:
    软件开发之需求调研方法论
    系统设计之编码概述
    unix/linux共享库(动态库)简介
    unix/linux静态库简介
    pytest的使用
    c语言中static的作用
    awk文本处理
    shell基本概念
    shell i/o交互及重定向
    shell常用分隔符及管道的用法
  • 原文地址:https://www.cnblogs.com/lichihua/p/11326857.html
Copyright © 2011-2022 走看看