我如何在PHP中定义委托

时间:2014-03-23 09:39:57

标签: php delegates

如何在类中定义函数,方法为空, 方法会改变调用类(作为c#中的委托) 以下错误代码为:

class myclass{
      public $num1=0;
      public function func($a,$b);
}
$c=new myclass();
$c->func=function($a,$b){
      return $a+$b;
}
$c->func(4,8);// is error

1 个答案:

答案 0 :(得分:1)

您可以这样做:

class myclass {
      public $num1=0;
      public function func($a,$b,$fn) {
            return $fn($a,$b); // return anonymous function
      }
}

$c = new myclass();

$c->func(2,5,function($a,$b) { // declaring anonymous function with $a and $b parameters
    echo $a + $b; // result 7
});

DEMO