关于闭包函数

闭包函数其实跟普通函数调用没啥子很大的差异,只不过所谓闭包,就是把当前函数内部封闭对外留个接口调用(普通函数好像也差不多)

基本用法:

function test($string){

     return  $string;

}

$a='test';

echo $b=$a('fffff');

这里将函数当成了字符串传递给了a变量,让a变量有了函数一样的功能,它的等效写法就是:

function test($string){

     return  $string;

}

echo $b=test('fffff');

闭包还有可以用赋值的形式给变量;

function test1($a){
    
    $b=function($a){
      return $a;
    };
    
    echo $b($a);
}

test1('sdsdsd');

就像不能访问全局变量一样:

$b=function($a){
      return $a;
    };

function test1($a){
    
    echo $b($a);
}

注意:未定义变量:b

致命错误:函数名必须是字符串

这样报错了。就如同想引入全局变量要global一样,当然闭包有use可以引入父类域但use是拷贝(除非你use的对象是引用。)

其实真的跟普通调用函数没啥大的区别,无非就是能把函数当参数用,封装了包里面的内容并输出一个结果。(类似C中的函数指针传参)

猜你喜欢

转载自blog.csdn.net/qq_37391017/article/details/83075074