我想将变量作为引用传递给通过字符串调用的静态方法,因此我不能使用call_user_func
或call_user_func_array
(无引用)。
如本例所示,我想通过变量名简单地调用函数:
$f = '\\bbn\\appui\\history::trigger';
if ( is_callable($f) ){
$tmp = $f($table, $kind, $moment, $values, $where);
}
我得到:
致命错误:调用未定义函数 \bbn\appui\history::trigger()
所以它是可调用的,但未定义?有趣的是,如果我将 $f 更改为:
'\\\\bbn\\\\appui\\\\history::trigger'
(不要问我为什么尝试!),我得到:
致命错误:include():无法重新声明类 bbn\appui\history
这个函数被称为另一个函数的回调,所以通过变量调用它对我来说非常重要。有人会知道如何让它工作吗?
我使用 Composer 及其自动加载类,我所有的类都是 psr-0,而且我对它们的自动加载没有任何问题。