php匿名函数(一、基础用法及注意事项)

匿名函数(在 PHP 5.3 中被引入),匿名函数在php使用目前为止并不多见,但是现在的很多框架中都能看到它的影子,如果不能对匿名函数有一定的理解,对源码学习是一种阻碍。

基本的声明:

$func = function(){
    //do something......
};  //切记这里要带分号

echo $func();

也可以带上参数:

$func = function($var){
    return $var;
};
echo $func('test');

$func1 = function($var){
    return $var;
};
$re = $func1([1,2,3]);
print_r($re);

 匿名函数到底属于什么类型?

$func2 = function(){};
var_dump($func2);  //object(Closure)

//你也会经常看到这样的代码
if($func2 instanceof Closure){
    //.......
}

总结:

1、匿名函数属于变量的一种,属于对象的特殊变量。

2、因为是变量的一种,所以要遵循变量规则,如果要使用,必须在前文进行定义。

3、匿名是没有明确的名字,且结束需要结束符。

 

要使用外部变量怎么办?像普通函数那样? use 关键字是正解。

$num = 100;
function myFunc(){
	global $num; //普通函数使用global,使全局变量引入局部。
	return $num;
}
echo myFunc();
	
$func3 = function(){
	global $num; //匿名函数同样可以这样,但是不建议这样使用。
	return $num;
};
echo $func3();
	
//不建议使用global,因为我们有更好的解决办法,使用use关键字,将外部变量引入。	
$func4 = function() use($num){
	return ++$num;
};
echo $func4();
	
$func5 = function($var1,$var2)use($num){
	return ($var1 + $var2) * $num;
};
echo $func5(1,2);

 

常规函数中调用匿名函数

function myFunc1($param){
    $func = function() use ($param){
        return ++$param;
    };
    return $func();
}
echo myFunc1(100);

将匿名函数作为参数传入到函数中

function myFunc2($callback_func){
    $callback_func();
}
$func = function(){
    echo "hello";
};
myFucn2($func);

直接将匿名函数作为参数进行操作

function myFunc3($callback_func){
    $callback_func();
}
myFunc3(function(){
    echo "hello";
});

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值