我有一个PHP库函数,期望一个没有参数的回调。
我知道我可以使用array($this , 'my_function_name')
传递对象的方法但是如何为my_function_name
提供参数?
我找到了使用create_function
的解决方案,但是从PHP手册中我发现它存在安全问题。
答案 0 :(得分:5)
$that = $this;
$wrapper = function() use($that) {
return $that->my_function_name('arg1', 'arg2');
};
答案 1 :(得分:0)
这取决于您的库函数启动回调方法。你提到你正在制作一个wordpress主题。 WP通常使用call_user_func
方法。在库函数中,使用此函数调用args调用,在调用时包装方法参数:
回调定义:
$callbackArg = "Got here";
defined_lib_func(array($this , 'my_function_name'), $callbackArg);
图书馆脚本:
function defined_lib_function($callback, $args) {
call_user_func($callback, $args);
}
对于多个参数,只需将它们作为数组传递,并定义您的回调方法以接受数组作为参数。