php - 将类的静态函数存储在变量中

标签 php anonymous-function

在 PHP 中,我有一个接受函数对象并在线程中调用该函数的类:see the answer to this question .

它适用于匿名函数,但是,我想将此功能与不同类的静态函数一起使用:

    $thThread = new FunctionThreader(OtherClass::static_function, $aParams);

这会引发错误Undefined class constant static_function on line x

我试过:

    $fFunction = OtherClass::static_function;
    $thThread = new FunctionThreader($fFunction, $aParams);

我得到了同样的错误。

那么有没有办法将这个静态函数存储到 $fFunction 中,或者简单地将它作为函数对象引用?

最佳答案

在 PHP 中,您通常会使用 callback为此:

$callback = array('ClassName', 'methodName');
$thThread = new FunctionThreader($callback, $aParams);

如果 FunctionThreader::__construct() 只接受一个 Closure 而你对其实现没有影响,那么你可以将静态函数调用包装在一个 关闭:

$closure = function() { return ClassName::methodName(); };
$thThread = new FunctionThreader($closure, $aParams);

关于php - 将类的静态函数存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25754099/

相关文章:

php - Facebook connect 登录切换回用户 breaks out of div

php - 将平面 json 转换为像 json 一样的 TreeView

php - PHP 的问题包括来自命令行(或 cronjob)

Javascript如何使用setTimeout对列表进行迭代操作?

matlab - 将匿名函数与 feval 一起使用

php - 哪个是用于 codeigniter 的最佳 PHP ORM?

php - 它们如何工作:DB-Connect和SQL注入(inject)?

perl - 使用匿名 subs 最小化 Perl 中的子范围是一种好习惯吗?

javascript - javascript自调用匿名函数的使用

php - 自调用匿名函数而不声明为变量