在PHP中匿名函数,也叫做闭包函数,允许临时创建一个没有指定名称的函数,经常用作回调函数的参数
    什么是闭包,闭包是可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。“闭包”一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及他们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。
    通常,子函数可以使用父函数中的局部变量,这种行为就叫做闭包
    匿名函数:就是没有名称的函数,匿名函数可以赋值给变量,对象传递,不过匿名函数仍然是函数,因此可以调用,还可以传入参数,匿名函数特别适合作为函数或方法的回调
    闭包:是指在创建时封装周围状态的函数,即使闭包所在环境不存在了,闭包中封装的状态依然存在

    1. $da='helloe';
    2. // use 传递参数,可以不用 $a= function($da){
    3. $a= function() use ($da){
    4. echo $da.'888';
    5. };
    6. //最终执行,将变量当作函数,传入参数即可
    7. $a($da);
    // preg_replace_callback 第二个参数是一个回调函数,将闭包函数当作回调函数,传入
    echo preg_replace_callback('~-([a-z])~', function ($match) {
      return strtoupper($match[1]);
    }, 'hello-world');
    
    //将匿名函数当作参数传递,并且调用它
    function callFunc( $func ) {
      $func( "some string\r\n" );
    }
    $printStrFunc = function( $str ) {
      echo $str.'33';
    };
    callFunc($printStrFunc);
    //也可以直接将闭包函数进行传递
    callFunc(function( $str ) {
      echo $str.'33';
    });