php 类中使用闭包

class a{

    private $aa;
    private $r;

    function __construct()
    {

        $this->r = 'rrr';
        $use = '-use';
        $this->aa=function($p1 ,$p2)use($use ){
           echo $this->r . $use .$p1 .$p2;  //可以使用$this
        };

    }

    function a1(){
        $this->r = 'a1-';
    }

    function a2(){
        $this->aa=function(){
            echo $this->r . '-a2';
        };
    }

    function getaa(){
        return $this->aa;
    }

}



$a = new a();
$f= $a->getaa();  //即使aa是public也不能直接$a->aa() 会报“Call to undefined method a::aa()”
$f('p1' ,'p2'); //rrr-usep1p2
$a->a1();
$f('pp1' ,'pp2');   //a1--usepp1pp2   
$a->a2();
$f= $a->getaa();
$f();   //a1--a2

 

转载于:https://my.oschina.net/u/2399303/blog/862997

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值