如何将函数的引用作为参数传递给另一个函数?我试图实现一个回调,我之前需要传递函数returnProduct
的引用。我该怎么做?
<?php
class Tester {
public function calculate($var_1,$var_2,$var_3) {
$product = var_3($var_1,$var_2);
echo $product;
}
public function returnProduct($var_1,$var_2) {
return $var_1*$var_2;
}
}
$obj = new Tester();
$obj->calculate(100,2,$obj->returnProduct);
答案 0 :(得分:3)
将您的$product =
行更改为:
$product = call_user_func($var_3,$var_1,$var_2);
将您的主叫行更改为:
$obj->calculate(100,2,array($obj,'returnProduct'));
答案 1 :(得分:1)
如果您只想使用Tester
的方法,可以将方法名称作为字符串传递,例如
public function calculate($var_1, $var_2, $var_3) {
$product = $this->$var_3($var_1, $var_2);
echo $product;
}
然后用
调用它$obj->calculate(100, 2, 'returnProduct');
为谨慎起见,您可以使用恰当名称method_exists()