如果我有一个像这样的PHP类:
class A
{
public static function Method()
{
return "x";
}
}
我知道我可以通过以下方式访问:
echo A::Method();
但是我该如何创建这个方法的函数引用呢?我试过这样的事情:
$func = "A::Method";
echo $func();
但是它给了我一个运行时错误。那么,这在PHP中是否可行?如果是这样,怎么样?谢谢! :)
答案 0 :(得分:9)
两个选项:
call_user_func("A::Method");
$func = function () { return A::Method(); }; echo $func()
计划(但可能会发生变化)能够在下一版本的PHP中使用反射进行此操作:
$srm = new ReflectionMethod('A::Method');
$func = $srm->getClosure();
$func();
答案 1 :(得分:2)
类方法或对象方法的调用方式与普通函数不同。使用call_user_func
或call_user_func_array
:
call_user_func(array('A', 'Method'));
call_user_func('A::Method'); // As of 5.2.3