我有一个PHP库函数需要一个不带参数的回调。我知道我可以使用array($this, 'my_function_name')
传递对象的方法,但如何给my_function_name
传递参数呢?我找到了一种使用create_function
的解决方案,但从PHP手册中我发现它存在安全问题。
我有一个PHP库函数需要一个不带参数的回调。我知道我可以使用array($this, 'my_function_name')
传递对象的方法,但如何给my_function_name
传递参数呢?我找到了一种使用create_function
的解决方案,但从PHP手册中我发现它存在安全问题。
$that = $this;
$wrapper = function() use($that) {
return $that->my_function_name('arg1', 'arg2');
};
public function wrapper() ...
- zerkmscall_user_func
方法。在您的库函数中,使用此函数调用带有参数的回调,调用方法时包装方法参数:$callbackArg = "Got here";
defined_lib_func(array($this , 'my_function_name'), $callbackArg);
库脚本:
function defined_lib_function($callback, $args) {
call_user_func($callback, $args);
}
对于多个参数,只需将它们作为数组传递,并定义回调方法以接受一个数组作为参数。